github.com/akamai/AkamaiOPEN-edgegrid-golang/v8@v8.1.0/pkg/hapi/hapi_test.go (about) 1 package hapi 2 3 import ( 4 "crypto/tls" 5 "crypto/x509" 6 "net/http" 7 "net/http/httptest" 8 "net/url" 9 "testing" 10 11 "github.com/akamai/AkamaiOPEN-edgegrid-golang/v8/pkg/edgegrid" 12 "github.com/akamai/AkamaiOPEN-edgegrid-golang/v8/pkg/session" 13 "github.com/stretchr/testify/assert" 14 "github.com/stretchr/testify/require" 15 ) 16 17 func mockAPIClient(t *testing.T, mockServer *httptest.Server) HAPI { 18 serverURL, err := url.Parse(mockServer.URL) 19 require.NoError(t, err) 20 certPool := x509.NewCertPool() 21 certPool.AddCert(mockServer.Certificate()) 22 httpClient := &http.Client{ 23 Transport: &http.Transport{ 24 TLSClientConfig: &tls.Config{ 25 RootCAs: certPool, 26 }, 27 }, 28 } 29 s, err := session.New(session.WithClient(httpClient), session.WithSigner(&edgegrid.Config{Host: serverURL.Host})) 30 assert.NoError(t, err) 31 return Client(s) 32 } 33 34 func TestClient(t *testing.T) { 35 sess, err := session.New() 36 require.NoError(t, err) 37 tests := map[string]struct { 38 options []Option 39 expected *hapi 40 }{ 41 "no options provided, return default": { 42 options: nil, 43 expected: &hapi{ 44 Session: sess, 45 }, 46 }, 47 } 48 for name, test := range tests { 49 t.Run(name, func(t *testing.T) { 50 res := Client(sess, test.options...) 51 assert.Equal(t, res, test.expected) 52 }) 53 } 54 }