package birdfmt import ( "strings" "testing" ) func TestRenderDynamicBGPDiscovery_v4(t *testing.T) { out, err := RenderDynamicBGPDiscovery(DynamicBGPDiscoveryOptions{ RangesV4: []string{"198.51.100.0/24", "203.0.113.0/24"}, RequireExternal: true, }) if err != nil { t.Fatal(err) } for _, want := range []string{ "protocol bgp evobgp_discover_v4 from bgp_template", "neighbor range 198.51.100.0/24 external;", "neighbor range 203.0.113.0/24 external;", `dynamic name "evobgp_dyn_";`, "dynamic name digits 4;", "multihop;", "passive;", "import none;", "export none;", } { if !strings.Contains(out, want) { t.Fatalf("missing %q in:\n%s", want, out) } } } func TestRenderDynamicBGPDiscovery_invalid(t *testing.T) { _, err := RenderDynamicBGPDiscovery(DynamicBGPDiscoveryOptions{ RangesV4: []string{"not-a-cidr"}, }) if err == nil { t.Fatal("expected error") } } func TestParseDiscoveryRanges(t *testing.T) { got := ParseDiscoveryRanges("198.51.100.0/24, 203.0.113.0/24\n198.51.100.0/24") if len(got) != 2 { t.Fatalf("got %v", got) } }