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"); }
public StandardTokenProvider(IHttpClientFactory httpClientFactory, string authDataJson, uint refreshBeforeExpirationSeconds) : base(httpClientFactory, refreshBeforeExpirationSeconds) { this.AuthData = JsonConvert.DeserializeObject <CommonAuthData>(authDataJson); }