package basic_http import ( "net" "net/http" "net/http/httptest" "testing" "github.com/stretchr/testify/assert" ) func TestService_Name(t *testing.T) { s := Service{ServiceName: "my_service"} assert.Equal(t, "my_service", s.Name()) } func TestService_Lookup(t *testing.T) { server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { _, err := w.Write([]byte("255.240.85.2")) assert.NoError(t, err) })) defer server.Close() s := Service{Url: server.URL} ip, err := s.Lookup() assert.NoError(t, err) assert.Equal(t, net.IPv4(255, 240, 85, 2), ip) } func TestService_Lookup_WithHeaders(t *testing.T) { server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { assert.Equal(t, "application/json", r.Header.Get("Content-Type")) _, err := w.Write([]byte("125.74.233.13")) assert.NoError(t, err) })) defer server.Close() s := Service{ Url: server.URL, Headers: http.Header{ "Content-Type": []string{"application/json"}, }, } ip, err := s.Lookup() assert.NoError(t, err) assert.Equal(t, net.IPv4(125, 74, 233, 13), ip) }