package main import ( "testing" "github.com/google/go-cmp/cmp" ) func TestARINResponse(t *testing.T) { info, err := getIPInfo("104.40.92.107") if err != nil { t.Fatal(err) } if info.Net.Organization.Handle != "MSFT" { t.Fatalf("expected handle to be MSFT, got %s", info.Net.Organization.Handle) } if info.Net.Organization.Name != "Microsoft Corporation" { t.Fatalf("expected handle to be Microsoft Corporation, got %s", info.Net.Organization.Name) } if info.Net.Organization.Reference != "https://whois.arin.net/rest/org/MSFT" { t.Fatalf("expected reference to be https://whois.arin.net/rest/org/MSFT, got %s", info.Net.Organization.Reference) } } func TestParsePortRange(t *testing.T) { testFuncs := []struct { given string expected intSlice }{ { given: "", expected: intSlice{80, 443, 8001, 9001}, }, { given: "80,443,9090", expected: intSlice{80, 443, 9090}, }, { given: "80-90", expected: intSlice{80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90}, }, { given: "22-24,80,8080-8083", expected: intSlice{22, 23, 24, 80, 8080, 8081, 8082, 8083}, }, { given: "80", expected: intSlice{80}, }, } for _, testFunc := range testFuncs { i := intSlice{} if err := i.Set(testFunc.given); err != nil { t.Fatal(err) } if !cmp.Equal(testFunc.expected, i) { t.Fatalf("expected: %#v\ngot: %#v", testFunc.expected, i) } } }