Exemplo n.º 1
0
        public async Task Should_TestStandardTokenProvider()
        {
            var providerType = "standard";
            var authData     = new CommonAuthData()
            {
                Username = "******",
                Password = "******",
                AuthType = providerType,
                AuthUrl  = $"http://localhost/{providerType}/"
            };

            var jsonAuthData = JsonConvert.SerializeObject(authData);

            var accessToken1 = await this.agentsTokenStorage.GetAccessTokenAsync(jsonAuthData);

            var accessToken2 = await this.agentsTokenStorage.GetAccessTokenAsync(jsonAuthData);

            var tokensInfo = await this.getTokensInfo <StandardTokensInfo>(providerType);

            Assert.AreEqual(accessToken1, accessToken2, "Access token changed before expiration");
            Assert.AreEqual(tokensInfo.AccessTokenRequestCount, 1, "Current access token request count isn't correct. Expected: 1");
            Assert.AreEqual(tokensInfo.RefreshTokenRequestCount, 1, "Current refresh token request count isn't correct. Expected: 1");

            await this.delayTillTokenExpiration(accessToken2);

            var accessToken3 = await this.agentsTokenStorage.GetAccessTokenAsync(jsonAuthData);

            tokensInfo = await this.getTokensInfo <StandardTokensInfo>(providerType);

            Assert.AreNotEqual(accessToken3, accessToken2, "Access token hasn't been changed");
            Assert.AreEqual(tokensInfo.AccessTokenRequestCount, 2, "Access token wasn't refreshed");
            Assert.AreEqual(tokensInfo.RefreshTokenRequestCount, 1, "Current refresh token request count isn't correct. Expected: 1");

            await this.delayTillTokenExpiration(tokensInfo.LastRefreshToken);

            var accessToken4 = await this.agentsTokenStorage.GetAccessTokenAsync(jsonAuthData);

            tokensInfo = await this.getTokensInfo <StandardTokensInfo>(providerType);

            Assert.AreNotEqual(accessToken4, accessToken3, "Access token hasn't been changed");
            Assert.AreEqual(tokensInfo.AccessTokenRequestCount, 3, "Access token wasn't refreshed on refresh tonen change");
            Assert.AreEqual(tokensInfo.RefreshTokenRequestCount, 2, "Current refresh token request count isn't correct. Expected: 2");

            var accessToken5 = await this.agentsTokenStorage.GetAccessTokenAsync(jsonAuthData);

            Assert.AreEqual(accessToken5, accessToken4, "Access token changed before expiration");

            await this.assertNewAccessTokenGeneration();

            await this.agentsTokenStorage.CleanApiTokensAsync(jsonAuthData);

            var accessToken6 = await this.agentsTokenStorage.GetAccessTokenAsync(jsonAuthData);

            tokensInfo = await this.getTokensInfo <StandardTokensInfo>(providerType);

            Assert.AreNotEqual(accessToken6, accessToken5, "Access token hasn't been changed");
            Assert.AreEqual(tokensInfo.AccessTokenRequestCount, 4, "Access token wasn't refreshed on cleanup");
            Assert.AreEqual(tokensInfo.RefreshTokenRequestCount, 3, "Current refresh token request count isn't correct. Expected: 3");
        }
Exemplo n.º 2
0
 public StandardTokenProvider(IHttpClientFactory httpClientFactory, string authDataJson, uint refreshBeforeExpirationSeconds) : base(httpClientFactory, refreshBeforeExpirationSeconds)
 {
     this.AuthData = JsonConvert.DeserializeObject <CommonAuthData>(authDataJson);
 }