@@ -15,6 +15,12 @@ type MockHelper struct {
15
15
DeleteFailError error
16
16
}
17
17
18
+ func NewMockHelper () * MockHelper {
19
+ return & MockHelper {
20
+ Credentials : make (map [string ]* Credentials ),
21
+ }
22
+ }
23
+
18
24
func (m * MockHelper ) Add (c * Credentials ) error {
19
25
if m .AddFailError != nil {
20
26
return m .AddFailError
@@ -230,7 +236,7 @@ func TestLookupCredentials(t *testing.T) {
230
236
for _ , testCase := range testCases {
231
237
t .Run (testCase .CaseName , func (t * testing.T ) {
232
238
t .Log (testCase .CaseName )
233
- m := & MockHelper {}
239
+ m := NewMockHelper ()
234
240
CurrentHelper = m
235
241
m .Credentials = testCase .initialCredentials
236
242
t .Log (testCase .initialCredentials )
@@ -251,3 +257,54 @@ func TestLookupCredentials(t *testing.T) {
251
257
// restoring the old Helper
252
258
CurrentHelper = oldHelper
253
259
}
260
+
261
+ func TestSaveCredentials (t * testing.T ) {
262
+ oldHelper := CurrentHelper
263
+
264
+ testCases := []struct {
265
+ CaseName string
266
+ IdpName string
267
+ URL string
268
+ Username string
269
+ Password string
270
+ expectedCredentialKeyName string
271
+ expectedError bool
272
+ }{
273
+ {
274
+ CaseName : "SaveCredentials" ,
275
+ IdpName : "test" ,
276
+ URL : "http://test.com/" ,
277
+ Username : "user1" ,
278
+ Password : "password1" ,
279
+ expectedCredentialKeyName : "saml2aws_credentials_test" ,
280
+ },
281
+ {
282
+ CaseName : "EmptyIdpNameRaisesError" ,
283
+ IdpName : "" ,
284
+ URL : "http://test.com/" ,
285
+ Username : "user2" ,
286
+ Password : "password2" ,
287
+ expectedError : true ,
288
+ },
289
+ }
290
+
291
+ for _ , testCase := range testCases {
292
+ t .Run (testCase .CaseName , func (t * testing.T ) {
293
+ m := NewMockHelper ()
294
+ CurrentHelper = m
295
+ err := SaveCredentials (testCase .IdpName , testCase .URL , testCase .Username , testCase .Password )
296
+ if testCase .expectedError {
297
+ assert .NotNil (t , err )
298
+ } else {
299
+ assert .Nil (t , err )
300
+ _ , ok := m .Credentials [testCase .expectedCredentialKeyName ]
301
+ assert .True (t , ok )
302
+ assert .EqualValues (t , testCase .Username , m .Credentials [testCase .expectedCredentialKeyName ].Username )
303
+ assert .EqualValues (t , testCase .Password , m .Credentials [testCase .expectedCredentialKeyName ].Secret )
304
+ }
305
+ })
306
+ }
307
+
308
+ // restoring the old Helper
309
+ CurrentHelper = oldHelper
310
+ }
0 commit comments