github.com/akamai/AkamaiOPEN-edgegrid-golang/v8@v8.1.0/pkg/cloudwrapper/cloudwrapper_test.go (about) 1 package cloudwrapper 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) CloudWrapper { 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 require.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 *cloudwrapper 40 }{ 41 "no options provided, return default": { 42 options: nil, 43 expected: &cloudwrapper{ 44 Session: sess, 45 }, 46 }, 47 "option provided, overwrite session": { 48 options: []Option{func(c *cloudwrapper) { 49 c.Session = nil 50 }}, 51 expected: &cloudwrapper{ 52 Session: nil, 53 }, 54 }, 55 } 56 for name, test := range tests { 57 t.Run(name, func(t *testing.T) { 58 res := Client(sess, test.options...) 59 assert.Equal(t, res, test.expected) 60 }) 61 } 62 }