@@ -155,6 +155,7 @@ func TestTokenManager_Close(t *testing.T) {
155
155
t .Parallel ()
156
156
t .Run ("Close" , func (t * testing.T ) {
157
157
t .Parallel ()
158
+ var err error
158
159
idp := & mockIdentityProvider {}
159
160
listener := & mockTokenListener {}
160
161
mParser := & mockIdentityProviderResponseParser {}
@@ -169,7 +170,7 @@ func TestTokenManager_Close(t *testing.T) {
169
170
assert .True (t , ok )
170
171
assert .Nil (t , tm .listener )
171
172
assert .NotPanics (t , func () {
172
- err = tokenManager . Stop ()
173
+ err = tm . stop ()
173
174
assert .Error (t , err )
174
175
})
175
176
rawResponse , err := shared .NewIDPResponse (shared .ResponseTypeRawToken , "test" )
@@ -179,19 +180,20 @@ func TestTokenManager_Close(t *testing.T) {
179
180
mParser .On ("ParseResponse" , rawResponse ).Return (testTokenValid , nil )
180
181
listener .On ("OnNext" , testTokenValid ).Return ()
181
182
183
+ var stopper StopFunc
182
184
assert .NotPanics (t , func () {
183
- cancel , err : = tokenManager .Start (listener )
184
- assert .NotNil (t , cancel )
185
+ stopper , err = tokenManager .Start (listener )
186
+ assert .NotNil (t , stopper )
185
187
assert .NoError (t , err )
186
188
})
187
189
assert .NotNil (t , tm .listener )
188
190
189
- err = tokenManager . Stop ()
191
+ err = stopper ()
190
192
assert .Nil (t , tm .listener )
191
193
assert .NoError (t , err )
192
194
193
195
assert .NotPanics (t , func () {
194
- err = tokenManager . Stop ()
196
+ err = stopper ()
195
197
assert .Error (t , err )
196
198
})
197
199
})
@@ -256,8 +258,8 @@ func TestTokenManager_Close(t *testing.T) {
256
258
listener .On ("OnNext" , testTokenValid ).Return ()
257
259
258
260
assert .NotPanics (t , func () {
259
- cancel , err := tokenManager .Start (listener )
260
- assert .NotNil (t , cancel )
261
+ stopper , err := tokenManager .Start (listener )
262
+ assert .NotNil (t , stopper )
261
263
assert .NoError (t , err )
262
264
assert .NotNil (t , tm .listener )
263
265
var hasStopped int
@@ -272,7 +274,7 @@ func TestTokenManager_Close(t *testing.T) {
272
274
go func () {
273
275
defer wg .Done ()
274
276
time .Sleep (time .Duration (int64 (rand .Intn (100 )) * int64 (time .Millisecond )))
275
- err := tokenManager . Stop ()
277
+ err := stopper ()
276
278
if err == nil {
277
279
hasStopped += 1
278
280
return
@@ -383,7 +385,7 @@ func TestTokenManager_Start(t *testing.T) {
383
385
time .Sleep (time .Duration (int64 (rand .Intn (1000 )+ (300 - int (num )/ 2 )) * int64 (time .Millisecond )))
384
386
last .Store (num )
385
387
if num % 2 == 0 {
386
- err = tokenManager . Stop ()
388
+ err = tm . stop ()
387
389
} else {
388
390
l := & mockTokenListener {Id : num }
389
391
l .On ("OnNext" , testTokenValid ).Return ()
@@ -410,11 +412,11 @@ func TestTokenManager_Start(t *testing.T) {
410
412
log .Printf ("FAILING WITH lastExecution[STOPPED]: %d" , lastExecution )
411
413
}
412
414
assert .NotNil (t , tm .listener )
413
- cancel , err := tokenManager .Start (listener )
414
- assert .Nil (t , cancel )
415
+ stopper , err := tokenManager .Start (listener )
416
+ assert .Nil (t , stopper )
415
417
assert .Error (t , err )
416
- // Close the token manager
417
- err = tokenManager . Stop ()
418
+ // Stop the token manager with internal stop, since stopper should be nil
419
+ err = tm . stop ()
418
420
assert .Nil (t , err )
419
421
}
420
422
assert .Nil (t , tm .listener )
@@ -435,7 +437,7 @@ func TestDefaultIdentityProviderResponseParser(t *testing.T) {
435
437
token1 , err := parser .ParseResponse (idpResponse )
436
438
assert .NoError (t , err )
437
439
assert .NotNil (t , token1 )
438
- assert .Equal (t , authResultVal .ExpiresOn , token1 .ExpirationOn ())
440
+ assert .InEpsilon (t , authResultVal .ExpiresOn . Unix () , token1 .ExpirationOn (). Unix (), 1 )
439
441
})
440
442
t .Run ("Default IdentityProviderResponseParser with type AccessToken" , func (t * testing.T ) {
441
443
t .Parallel ()
@@ -784,8 +786,8 @@ func TestEntraidTokenManager_Streaming(t *testing.T) {
784
786
mParser .On ("ParseResponse" , idpResponse ).Return (token1 , nil ).Once ()
785
787
listener .On ("OnNext" , token1 ).Return ().Once ()
786
788
787
- cancel , err := tokenManager .Start (listener )
788
- assert .NotNil (t , cancel )
789
+ stopper , err := tokenManager .Start (listener )
790
+ assert .NotNil (t , stopper )
789
791
assert .NoError (t , err )
790
792
assert .NotNil (t , tm .listener )
791
793
@@ -795,14 +797,15 @@ func TestEntraidTokenManager_Streaming(t *testing.T) {
795
797
assert .True (t , expiresIn > toRenewal )
796
798
<- time .After (toRenewal / 10 )
797
799
assert .NotNil (t , tm .listener )
798
- assert .NoError (t , tokenManager . Stop ())
800
+ assert .NoError (t , stopper ())
799
801
assert .Nil (t , tm .listener )
800
802
assert .Panics (t , func () {
801
803
close (tm .closedChan )
802
804
})
803
805
804
806
<- time .After (toRenewal )
805
- assert .Error (t , tokenManager .Stop ())
807
+ // already stopped
808
+ assert .Error (t , stopper ())
806
809
mock .AssertExpectationsForObjects (t , idp , mParser , listener )
807
810
})
808
811
@@ -1251,9 +1254,9 @@ func TestEntraidTokenManager_Streaming(t *testing.T) {
1251
1254
1252
1255
func testAuthResult (expiersOn time.Time ) * public.AuthResult {
1253
1256
r := & public.AuthResult {
1254
- ExpiresOn : expiersOn ,
1257
+ ExpiresOn : expiersOn ,
1258
+ AccessToken : newTestJWTToken (expiersOn ),
1255
1259
}
1256
- r .IDToken .Oid = "test"
1257
1260
return r
1258
1261
}
1259
1262
@@ -1333,14 +1336,14 @@ func BenchmarkTokenManager_Close(b *testing.B) {
1333
1336
mParser .On ("ParseResponse" , rawResponse ).Return (testTokenValid , nil )
1334
1337
listener .On ("OnNext" , testTokenValid ).Return ()
1335
1338
1336
- _ , err = tokenManager .Start (listener )
1339
+ stopper , err : = tokenManager .Start (listener )
1337
1340
if err != nil {
1338
1341
b .Fatal (err )
1339
1342
}
1340
1343
1341
1344
b .ResetTimer ()
1342
1345
for i := 0 ; i < b .N ; i ++ {
1343
- _ = tokenManager . Stop ()
1346
+ _ = stopper ()
1344
1347
}
1345
1348
}
1346
1349
0 commit comments