-
Notifications
You must be signed in to change notification settings - Fork 0
/
Factory_test.go
104 lines (85 loc) · 3.61 KB
/
Factory_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package connectsdk
import (
"reflect"
"testing"
"github.com/Worldline-Global-Collect/connect-sdk-go/authentication/v1hmac"
"github.com/Worldline-Global-Collect/connect-sdk-go/communicator"
"github.com/Worldline-Global-Collect/connect-sdk-go/configuration"
"github.com/Worldline-Global-Collect/connect-sdk-go/json"
)
var apiKeyID = "someKey"
var secretAPIKey = "someSecret"
func TestCreateConfiguration(t *testing.T) {
defaultConfiguration, _ := configuration.DefaultV1HMACConfiguration(apiKeyID, secretAPIKey, "Test")
conf, err := CreateV1HMACConfiguration(apiKeyID, secretAPIKey, "Test")
if err != nil {
t.Fatalf("TestCreateConfiguration: %v", err)
}
if conf.APIEndpoint != defaultConfiguration.APIEndpoint {
t.Fatalf("TestCreateConfiguration: APIEndpoint mismatch %v %v",
conf.APIEndpoint, defaultConfiguration.APIEndpoint)
}
if conf.AuthorizationType != defaultConfiguration.AuthorizationType {
t.Fatalf("TestCreateConfiguration: AuthorizationType mismatch %v %v",
conf.AuthorizationType, defaultConfiguration.AuthorizationType)
}
if conf.IdleTimeout != defaultConfiguration.IdleTimeout {
t.Fatalf("TestCreateConfiguration: IdleTimeout mismatch %v %v",
conf.IdleTimeout, defaultConfiguration.IdleTimeout)
}
if conf.ConnectTimeout != defaultConfiguration.ConnectTimeout {
t.Fatalf("TestCreateConfiguration: ConnectTimeout mismatch %v %v",
conf.ConnectTimeout, defaultConfiguration.ConnectTimeout)
}
if conf.SocketTimeout != defaultConfiguration.SocketTimeout {
t.Fatalf("TestCreateConfiguration: SocketTimeout mismatch %v %v",
conf.SocketTimeout, defaultConfiguration.SocketTimeout)
}
if conf.MaxConnections != defaultConfiguration.MaxConnections {
t.Fatalf("TestCreateConfiguration: MaxConnections mismatch %v %v",
conf.MaxConnections, defaultConfiguration.MaxConnections)
}
if conf.GetAPIKeyID() != apiKeyID {
t.Fatalf("TestCreateConfiguration: APIKeyID mismatch %v %v",
conf.GetAPIKeyID(), apiKeyID)
}
if conf.GetSecretAPIKey() != secretAPIKey {
t.Fatalf("TestCreateConfiguration: SecretAPIKey mismatch %v %v",
conf.GetSecretAPIKey(), secretAPIKey)
}
}
func TestCreateCommunicator(t *testing.T) {
marshaller := json.DefaultMarshaller()
comm, err := CreateCommunicator(apiKeyID, secretAPIKey, "Test")
if err != nil {
t.Fatalf("TestCreateCommunicator: %v", err)
}
if comm.Marshaller() != marshaller {
t.Fatalf("TestCreateCommunicator: marshaller mismatch %v %v",
comm.Marshaller(), marshaller)
}
connection := comm.Connection()
if _, isDefaultConnection := connection.(*communicator.DefaultConnection); !isDefaultConnection {
t.Fatalf("TestCreateCommunicator: connection type mismatch %T", connection)
}
authenticator := comm.Authenticator()
if _, isV1HMACAuthenticator := authenticator.(*v1hmac.Authenticator); !isV1HMACAuthenticator {
t.Fatalf("TestCreateCommunicator: authenticator type mismatch %T", authenticator)
}
authAPIKeyID := reflect.Indirect(reflect.ValueOf(authenticator)).FieldByName("apiKeyID").String()
if authAPIKeyID != apiKeyID {
t.Fatalf("TestCreateCommunicator: apiKeyID mismatch %v", authAPIKeyID)
}
authSecretAPIKey := reflect.Indirect(reflect.ValueOf(authenticator)).FieldByName("secretAPIKey").String()
if authSecretAPIKey != secretAPIKey {
t.Fatalf("TestCreateCommunicator: secretAPIKey mismatch %v", authSecretAPIKey)
}
metadataProvider := comm.MetadataProvider()
headers := metadataProvider.MetadataHeaders()
if len(headers) != 1 {
t.Fatalf("TestCreateCommunicator: headers len mismatch %v", len(headers))
}
if headers[0].Name() != "X-GCS-ServerMetaInfo" {
t.Fatalf("TestCreateCommunicator: header name mismatch %v", headers[0].Name())
}
}