package birdfmt import ( "strings" "testing" ) func TestRenderProtocolBGPIPv4_Validation(t *testing.T) { _, err := RenderProtocolBGPIPv4(BGPPeerIPv4Options{}) if err == nil { t.Fatal("expected error") } } func TestRenderProtocolBGPIPv4_ExportAll(t *testing.T) { got, err := RenderProtocolBGPIPv4(BGPPeerIPv4Options{ ProtocolName: "p", LocalIP: "192.0.2.1", LocalASN: 1, NeighborIP: "192.0.2.2", NeighborASN: 2, }) if err != nil { t.Fatal(err) } if !strings.Contains(got, "export all;") { t.Fatal(got) } } func TestRenderBGPTemplates_Validation(t *testing.T) { _, err := RenderBGPTemplates(BGPTemplatesOptions{}) if err == nil { t.Fatal("expected error") } } func TestRenderProtocolBGPFromTemplate_MultihopPassive(t *testing.T) { got, err := RenderProtocolBGPFromTemplate(BGPPeerFromTemplateOptions{ ProtocolName: "evobgp_p_x", TemplateName: BGPTemplateNameV4, NeighborIP: "94.142.140.141", NeighborASN: 65002, }) if err != nil { t.Fatal(err) } if !strings.Contains(got, "from bgp_template") { t.Fatal(got) } if !strings.Contains(got, "multihop;") || !strings.Contains(got, "passive;") { t.Fatal(got) } if strings.Contains(got, "source address") || strings.Contains(got, "strict bind") { t.Fatal(got) } } func TestRenderProtocolBGPFromTemplate_OverrideLocal(t *testing.T) { got, err := RenderProtocolBGPFromTemplate(BGPPeerFromTemplateOptions{ ProtocolName: "p", TemplateName: BGPTemplateNameV4, NeighborIP: "192.0.2.2", NeighborASN: 2, OverrideLocalIP: "10.0.0.1", OverrideLocalASN: 65099, }) if err != nil { t.Fatal(err) } if !strings.Contains(got, "local 10.0.0.1 as 65099;") { t.Fatal(got) } }