github.com/Ingenico-ePayments/connect-sdk-go@v0.0.0-20240318153750-1f8cd329b9c9/Client_test.go (about) 1 package connectsdk 2 3 import ( 4 "encoding/base64" 5 "net/url" 6 "testing" 7 8 "github.com/Ingenico-ePayments/connect-sdk-go/configuration" 9 "github.com/Ingenico-ePayments/connect-sdk-go/defaultimpl" 10 ) 11 12 var testConfiguration = configuration.CommunicatorConfiguration{ 13 APIEndpoint: url.URL{ 14 Scheme: "https", 15 Host: "eu.sandbox.api-ingenico.com", 16 }, 17 AuthorizationType: defaultimpl.V1HMAC, 18 MaxConnections: 100, 19 APIKeyID: "someKey", 20 SecretAPIKey: "someSecret", 21 } 22 23 func TestWithClientMetaInfo(t *testing.T) { 24 conf := testConfiguration 25 client1, err := CreateClientFromConfiguration(&conf) 26 if err != nil { 27 t.Fatalf("TestWithClientMetaInfo: %v", err) 28 } 29 if client1.apiResource == nil { 30 t.Fatal("TestWithClientMetaInfo: nil apiResource") 31 } 32 33 headers := client1.apiResource.ClientHeaders() 34 if headers != nil { 35 t.Fatal("TestWithClientMetaInfo: headers not nil") 36 } 37 38 client2, err := client1.WithClientMetaInfo("") 39 if err != nil { 40 t.Fatalf("TestWithClientMetaInfo: %v", err) 41 } 42 if client1 != client2 { 43 t.Fatal("TestWithClientMetaInfo: clients not equal") 44 } 45 46 marshaller, _ := defaultimpl.NewDefaultMarshaller() 47 clientMetaInfo, err := marshaller.Marshal(map[string]string{ 48 "test": "test", 49 }) 50 if err != nil { 51 t.Fatalf("TestWithClientMetaInfo: %v", err) 52 } 53 client3, err := client1.WithClientMetaInfo(clientMetaInfo) 54 if err != nil { 55 t.Fatalf("TestWithClientMetaInfo: %v", err) 56 } 57 if client3 == client1 { 58 t.Fatal("TestWithClientMetaInfo: clients equal") 59 } 60 headers = client3.apiResource.ClientHeaders() 61 if len(headers) != 1 { 62 t.Fatalf("TestWithClientMetaInfo: invalid headers len %d", len(headers)) 63 } 64 headerValue := base64.StdEncoding.EncodeToString([]byte(clientMetaInfo)) 65 if headers[0].Value() != headerValue { 66 t.Fatalf("TestWithClientMetaInfo: header value mismatch '%v' '%v'", headers[0].Value(), headerValue) 67 } 68 69 client4, err := client3.WithClientMetaInfo(clientMetaInfo) 70 if err != nil { 71 t.Fatalf("TestWithClientMetaInfo: %v", err) 72 } 73 if client3 != client4 { 74 t.Fatal("TestWithClientMetaInfo: clients not equal") 75 } 76 77 client5, err := client3.WithClientMetaInfo("") 78 if err != nil { 79 t.Fatal("TestWithClientMetaInfo: clients not equal") 80 } 81 if client3 == client5 { 82 t.Fatal("TestWithClientMetaInfo: clients equal") 83 } 84 }