@@ -15,12 +15,14 @@ import (
15
15
16
16
var (
17
17
testNonce []byte = []byte {0xde , 0xad , 0xbe , 0xef }
18
+ testNonceSz uint = 32
18
19
testEvidence []byte = []byte {0x0e , 0x0d , 0x0e }
19
20
20
21
testBaseURI = "http://veraison.example"
21
22
testRelSessionURI = "/challenge-response/v1/session/1"
22
23
testSessionURI = testBaseURI + testRelSessionURI
23
24
testNewSessionURI = testBaseURI + "/challenge-response/v1/newSession"
25
+ testBadURI = `http://veraison.example:80challenge-response/v1/session/1`
24
26
)
25
27
26
28
type testEvidenceBuilder struct {}
@@ -32,6 +34,79 @@ func (testEvidenceBuilder) BuildEvidence(
32
34
return testEvidence , "application/my-evidence-media-type" , nil
33
35
}
34
36
37
+ func TestChallengeResponseConfig_SetNonce_ok (t * testing.T ) {
38
+ cfg := ChallengeResponseConfig {}
39
+ err := cfg .SetNonce (testNonce )
40
+ assert .NoError (t , err )
41
+ }
42
+
43
+ func TestChallengeResponseConfig_SetNonce_nil_nonce (t * testing.T ) {
44
+ cfg := ChallengeResponseConfig {}
45
+ expectedErr := `no nonce supplied`
46
+ var nonce []byte
47
+ err := cfg .SetNonce (nonce )
48
+ assert .EqualError (t , err , expectedErr )
49
+ }
50
+
51
+ func TestChallengeResponseConfig_SetNonceSz_ok (t * testing.T ) {
52
+ cfg := ChallengeResponseConfig {}
53
+ err := cfg .SetNonceSz (testNonceSz )
54
+ assert .NoError (t , err )
55
+ }
56
+
57
+ func TestChallengeResponseConfig_SetNonceSz_zero_noncesz (t * testing.T ) {
58
+ cfg := ChallengeResponseConfig {}
59
+ expectedErr := `zero nonce size supplied`
60
+ err := cfg .SetNonceSz (0 )
61
+ assert .EqualError (t , err , expectedErr )
62
+ }
63
+ func TestChallengeResponseConfig_SetClient_ok (t * testing.T ) {
64
+ cfg := ChallengeResponseConfig {}
65
+ client := common .NewClient ()
66
+ err := cfg .SetClient (client )
67
+ assert .NoError (t , err )
68
+ }
69
+
70
+ func TestChallengeResponseConfig_SetClient_nil_client (t * testing.T ) {
71
+ cfg := ChallengeResponseConfig {}
72
+ expectedErr := `no client supplied`
73
+ err := cfg .SetClient (nil )
74
+ assert .EqualError (t , err , expectedErr )
75
+ }
76
+
77
+ func TestChallengeResponseConfig_SetSessionURI_ok (t * testing.T ) {
78
+ cfg := ChallengeResponseConfig {}
79
+ err := cfg .SetSessionURI (testSessionURI )
80
+ assert .NoError (t , err )
81
+ }
82
+
83
+ func TestChallengeResponseConfig_SetSessionURI_not_absolute (t * testing.T ) {
84
+ cfg := ChallengeResponseConfig {}
85
+ expectedErr := `the supplied session URI is not in absolute form`
86
+ err := cfg .SetSessionURI ("veraison.example/challenge-response/v1/session/1" )
87
+ assert .EqualError (t , err , expectedErr )
88
+ }
89
+
90
+ func TestChallengeResponseConfig_SetSessionURI_bad_uri (t * testing.T ) {
91
+ cfg := ChallengeResponseConfig {}
92
+ expectedErr := `malformed session URI: parse "http://veraison.example:80challenge-response/v1/session/1": invalid port ":80challenge-response" after host`
93
+ err := cfg .SetSessionURI (testBadURI )
94
+ assert .EqualError (t , err , expectedErr )
95
+ }
96
+
97
+ func TestChallengeResponseConfig_SetEvidenceBuilder_ok (t * testing.T ) {
98
+ cfg := ChallengeResponseConfig {}
99
+ err := cfg .SetEvidenceBuilder (testEvidenceBuilder {})
100
+ assert .NoError (t , err )
101
+ }
102
+
103
+ func TestChallengeResponseConfig_SetEvidenceBuilder_no_ok (t * testing.T ) {
104
+ cfg := ChallengeResponseConfig {}
105
+ expectedErr := `no evidence builder supplied`
106
+ err := cfg .SetEvidenceBuilder (nil )
107
+ assert .EqualError (t , err , expectedErr )
108
+ }
109
+
35
110
func TestChallengeResponseConfig_NewSession_ok (t * testing.T ) {
36
111
newSessionCreatedBody := `
37
112
{
0 commit comments