public static async Task FromId_TokenExpired_GetRefreshedToken()
        {
            var expiredToken   = BuildTokenEntry(DateTime.UtcNow.AddSeconds(-60));
            var refreshedToken = BuildTokenEntry(DateTime.UtcNow.AddDays(1));

            var config     = new AuthTokenExtensionConfig();
            var mockClient = GetEasyAuthClientMock(expiredToken, refreshedToken);

            config.EasyAuthClient = mockClient.Object;
            config.AppSettings    = GetNameResolver(new Dictionary <string, string>()
            {
                { Constants.AppSettingWebsiteAuthSigningKey, SigningKey }
            }).Object;

            var args = new Dictionary <string, object>
            {
                { "token", "dummyValue" },
            };
            JobHost host = TestHelpers.NewHost <TokenFunctions>(config);
            await host.CallAsync("TokenFunctions.FromId", args);

            var expectedResult = refreshedToken.AccessToken;

            Assert.Equal(expectedResult, finalTokenValue);
            mockClient.Verify(client => client.RefreshToken(It.IsAny <JwtSecurityToken>(), It.IsAny <TokenAttribute>()), Times.AtLeastOnce());
            ResetState();
        }
 private void ConfigureServiceManager(ExtensionConfigContext context)
 {
     if (_serviceManager == null)
     {
         // Set up token extension; handles auth (only providers supported by Easy Auth)
         var tokenExtension = new AuthTokenExtensionConfig();
         tokenExtension.InitializeAllExceptRules(context);
         _serviceManager = new ServiceManager(tokenExtension);
     }
 }
        public static async Task FromUserToken_CredentialsValid_GetToken()
        {
            var config     = new AuthTokenExtensionConfig();
            var mockClient = GetAadClientMock();

            config.AadClient = mockClient.Object;

            var args = new Dictionary <string, object>
            {
                { "token", SampleUserToken },
            };
            JobHost host = TestHelpers.NewHost <TokenFunctions>(config);
            await host.CallAsync("TokenFunctions.FromUserToken", args);

            var expectedResult = AccessTokenFromUserToken;

            Assert.Equal(expectedResult, finalTokenValue);
            mockClient.Verify(client => client.GetTokenOnBehalfOfUserAsync(SampleUserToken, GraphResource), Times.Exactly(1));
            ResetState();
        }
        public static async Task FromId_TokenStillValid_GetStoredToken()
        {
            var currentToken = BuildTokenEntry(DateTime.UtcNow.AddDays(1));
            var config       = new AuthTokenExtensionConfig();
            var mockClient   = GetEasyAuthClientMock(currentToken);

            config.EasyAuthClient = mockClient.Object;
            config.AppSettings    = GetNameResolver(new Dictionary <string, string>()
            {
                { Constants.AppSettingWebsiteAuthSigningKey, SigningKey }
            }).Object;

            var args = new Dictionary <string, object>
            {
                { "token", "dummyValue" },
            };
            JobHost host = TestHelpers.NewHost <TokenFunctions>(config);
            await host.CallAsync("TokenFunctions.FromId", args);

            var expectedResult = currentToken.AccessToken;

            Assert.Equal(expectedResult, finalTokenValue);
            ResetState();
        }
 public ServiceManager(AuthTokenExtensionConfig config)
 {
     _tokenExtension = config;
 }
 public Mock(AuthTokenExtensionConfig config, IGraphServiceClient client) : base(config)
 {
     _client = client;
 }