@@ -14,6 +14,7 @@ import (
14
14
"github.com/Azure/azure-sdk-for-go/sdk/azcore"
15
15
"github.com/AzureAD/microsoft-authentication-library-for-go/apps/public"
16
16
"github.com/stretchr/testify/assert"
17
+ "github.com/stretchr/testify/mock"
17
18
)
18
19
19
20
var assertFuncNameMatches = func (t * testing.T , func1 , func2 interface {}) {
@@ -535,6 +536,34 @@ func TestEntraidTokenManager_GetToken(t *testing.T) {
535
536
token , err := tokenManager .GetToken ()
536
537
assert .NoError (t , err )
537
538
assert .NotNil (t , token )
539
+
538
540
})
541
+ t .Run ("GetToken with parse error" , func (t * testing.T ) {
542
+ idp := & mockIdentityProvider {}
543
+ listener := & mockTokenListener {}
544
+ mParser := & mockIdentityProviderResponseParser {}
545
+ tokenManager , err := NewTokenManager (idp ,
546
+ TokenManagerOptions {
547
+ IdentityProviderResponseParser : mParser ,
548
+ },
549
+ )
550
+ assert .NoError (t , err )
551
+ assert .NotNil (t , tokenManager )
552
+ tm , ok := tokenManager .(* entraidTokenManager )
553
+ assert .True (t , ok )
554
+ assert .Nil (t , tm .listener )
555
+
556
+ rawResponse , err := NewIDPResponse (ResponseTypeRawToken , "test" )
557
+ assert .NoError (t , err )
558
+
559
+ idp .On ("RequestToken" ).Return (rawResponse , nil )
560
+ mParser .On ("ParseResponse" , rawResponse ).Return (nil , fmt .Errorf ("parse error" ))
561
+ listener .On ("OnTokenError" , mock .Anything ).Return ()
562
+
563
+ cancel , err := tokenManager .Start (listener )
564
+ assert .Error (t , err )
565
+ assert .Nil (t , cancel )
566
+ assert .NotNil (t , tm .listener )
539
567
568
+ })
540
569
}
0 commit comments