github.com/Ingenico-ePayments/connect-sdk-go@v0.0.0-20240318153750-1f8cd329b9c9/Factory_test.go (about) 1 package connectsdk 2 3 import ( 4 "reflect" 5 "testing" 6 7 "github.com/Ingenico-ePayments/connect-sdk-go/configuration" 8 "github.com/Ingenico-ePayments/connect-sdk-go/defaultimpl" 9 ) 10 11 var apiKeyID = "someKey" 12 var secretAPIKey = "someSecret" 13 14 func TestCreateConfiguration(t *testing.T) { 15 defaultConfiguration := configuration.DefaultConfiguration(apiKeyID, secretAPIKey, "Test") 16 17 configuration, err := CreateConfiguration(apiKeyID, secretAPIKey, "Test") 18 if err != nil { 19 t.Fatalf("TestCreateConfiguration: %v", err) 20 } 21 22 if configuration.APIEndpoint != defaultConfiguration.APIEndpoint { 23 t.Fatalf("TestCreateConfiguration: APIEndpoint mismatch %v %v", 24 configuration.APIEndpoint, defaultConfiguration.APIEndpoint) 25 } 26 27 if configuration.AuthorizationType != defaultConfiguration.AuthorizationType { 28 t.Fatalf("TestCreateConfiguration: AuthorizationType mismatch %v %v", 29 configuration.AuthorizationType, defaultConfiguration.AuthorizationType) 30 } 31 32 if configuration.IdleTimeout != defaultConfiguration.IdleTimeout { 33 t.Fatalf("TestCreateConfiguration: IdleTimeout mismatch %v %v", 34 configuration.IdleTimeout, defaultConfiguration.IdleTimeout) 35 } 36 37 if configuration.ConnectTimeout != defaultConfiguration.ConnectTimeout { 38 t.Fatalf("TestCreateConfiguration: ConnectTimeout mismatch %v %v", 39 configuration.ConnectTimeout, defaultConfiguration.ConnectTimeout) 40 } 41 42 if configuration.SocketTimeout != defaultConfiguration.SocketTimeout { 43 t.Fatalf("TestCreateConfiguration: SocketTimeout mismatch %v %v", 44 configuration.SocketTimeout, defaultConfiguration.SocketTimeout) 45 } 46 47 if configuration.MaxConnections != defaultConfiguration.MaxConnections { 48 t.Fatalf("TestCreateConfiguration: MaxConnections mismatch %v %v", 49 configuration.MaxConnections, defaultConfiguration.MaxConnections) 50 } 51 52 if configuration.APIKeyID != apiKeyID { 53 t.Fatalf("TestCreateConfiguration: APIKeyID mismatch %v %v", 54 configuration.APIKeyID, apiKeyID) 55 } 56 57 if configuration.SecretAPIKey != secretAPIKey { 58 t.Fatalf("TestCreateConfiguration: SecretAPIKey mismatch %v %v", 59 configuration.SecretAPIKey, secretAPIKey) 60 } 61 } 62 63 func TestCreateCommunicator(t *testing.T) { 64 marshaller, _ := defaultimpl.NewDefaultMarshaller() 65 66 communicator, err := CreateCommunicator(apiKeyID, secretAPIKey, "Test") 67 if err != nil { 68 t.Fatalf("TestCreateCommunicator: %v", err) 69 } 70 if communicator.Marshaller() != marshaller { 71 t.Fatalf("TestCreateCommunicator: marshaller mismatch %v %v", 72 communicator.Marshaller(), marshaller) 73 } 74 75 session := communicator.Session() 76 77 connection := session.Connection() 78 if _, isDefaultConnection := connection.(*defaultimpl.DefaultConnection); !isDefaultConnection { 79 t.Fatalf("TestCreateCommunicator: connection type mismatch %T", connection) 80 } 81 82 authenticator := session.Authenticator() 83 if _, isDefaultAuthenticator := authenticator.(*defaultimpl.DefaultAuthenticator); !isDefaultAuthenticator { 84 t.Fatalf("TestCreateCommunicator: authenticator type mismatch %T", authenticator) 85 } 86 87 authAuthType := reflect.Indirect(reflect.ValueOf(authenticator)).FieldByName("authType").String() 88 if authAuthType != defaultimpl.V1HMAC { 89 t.Fatalf("TestCreateCommunicator: auth type mismatch %v", authAuthType) 90 } 91 authAPIKeyID := reflect.Indirect(reflect.ValueOf(authenticator)).FieldByName("apiKeyID").String() 92 if authAPIKeyID != apiKeyID { 93 t.Fatalf("TestCreateCommunicator: apiKeyID mismatch %v", authAPIKeyID) 94 } 95 authSecretAPIKey := reflect.Indirect(reflect.ValueOf(authenticator)).FieldByName("secretAPIKey").String() 96 if authSecretAPIKey != secretAPIKey { 97 t.Fatalf("TestCreateCommunicator: secretAPIKey mismatch %v", authSecretAPIKey) 98 } 99 100 metaDataProvider := session.MetaDataProvider() 101 headers := metaDataProvider.MetaDataHeaders() 102 if len(headers) != 1 { 103 t.Fatalf("TestCreateCommunicator: headers len mismatch %v", len(headers)) 104 } 105 if headers[0].Name() != "X-GCS-ServerMetaInfo" { 106 t.Fatalf("TestCreateCommunicator: header name mismatch %v", headers[0].Name()) 107 } 108 }