package asnresolve import ( "context" "net/http" "net/http/httptest" "testing" ) func TestAnnouncedPrefixes_Mock(t *testing.T) { ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { if r.URL.Query().Get("resource") != "AS64496" { t.Fatalf("resource: %q", r.URL.Query().Get("resource")) } w.Header().Set("Content-Type", "application/json") _, _ = w.Write([]byte(`{"status":"ok","data":{"prefixes":[{"prefix":"203.0.113.0/24"},{"prefix":"2001:db8::/32"}]}}`)) })) defer ts.Close() t.Setenv("EVOBGP_RIPESTAT_ANNOUNCED_PREFIXES_URL", ts.URL) t.Setenv("EVOBGP_ASN_RESOLVE_PAUSE_MS", "1") pfx, err := AnnouncedPrefixes(context.Background(), ts.Client(), 64496) if err != nil { t.Fatal(err) } if len(pfx) != 2 { t.Fatalf("got %d prefixes", len(pfx)) } if pfx[0].String() != "2001:db8::/32" || pfx[1].String() != "203.0.113.0/24" { t.Fatalf("order or values: %#v", pfx) } } func TestASHolderName_Mock(t *testing.T) { ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { if r.URL.Query().Get("resource") != "AS64496" { t.Fatalf("resource: %q", r.URL.Query().Get("resource")) } w.Header().Set("Content-Type", "application/json") _, _ = w.Write([]byte(`{"status":"ok","data":{"holder":"Example Networks Ltd"}}`)) })) defer ts.Close() t.Setenv("EVOBGP_RIPESTAT_AS_OVERVIEW_URL", ts.URL) name, err := ASHolderName(context.Background(), ts.Client(), 64496) if err != nil { t.Fatal(err) } if name != "Example Networks Ltd" { t.Fatalf("holder: %q", name) } }