public async Task RetrieveToken_IsInCache_ReturnedFromCache() { var accessToken = "token1"; var token = new OioIdwsToken { CertificateThumbprint = "cert1", ExpiresUtc = DateTimeOffset.UtcNow.AddHours(1), }; var cacheMock = new Mock <ITokenCache>(); cacheMock .Setup(x => x.RetrieveAsync(accessToken)) .ReturnsAsync(token); Func <HttpClient> clientFactory = () => new HttpClient(); var sut = new RestTokenProvider(clientFactory, cacheMock.Object); sut.Initialize(null, null, new Mock <ILogger>().Object); var tokenResult = await sut.RetrieveTokenAsync(accessToken); Assert.IsTrue(tokenResult.Success); Assert.AreEqual(token.CertificateThumbprint, tokenResult.Result.CertificateThumbprint); cacheMock.Verify(x => x.RetrieveAsync(accessToken)); }
public async Task RetrieveToken_ExpiredAccessToken_ReturnsExpired() { var accessToken = "token1"; var cacheMock = new Mock <ITokenCache>(); var handler = TokenHandler.ExpiredToken(); Func <HttpClient> clientFactory = () => new HttpClient(handler) { BaseAddress = new Uri("http://dummy") }; var sut = new RestTokenProvider(clientFactory, cacheMock.Object); sut.Initialize(null, null, new Mock <ILogger>().Object); var tokenResult = await sut.RetrieveTokenAsync(accessToken); Assert.IsFalse(tokenResult.Success); Assert.IsTrue(tokenResult.Expired); }
public async Task RetrieveToken_UnknownAccessToken_ReturnsNothing() { var accessToken = "token1"; var cacheMock = new Mock <ITokenCache>(); var handler = new TokenHandler(null); //no token returned, i.e 404 Func <HttpClient> clientFactory = () => new HttpClient(handler) { BaseAddress = new Uri("http://dummy") }; var sut = new RestTokenProvider(clientFactory, cacheMock.Object); sut.Initialize(null, null, new Mock <ILogger>().Object); var tokenResult = await sut.RetrieveTokenAsync(accessToken); Assert.IsFalse(tokenResult.Success); Assert.IsFalse(tokenResult.Expired); Assert.IsNull(tokenResult.Result); }
public async Task RetrieveToken_IsInCacheButExpired_ReturnedFromRestInvocation() { var accessToken = "token1"; var expiredToken = new OioIdwsToken { CertificateThumbprint = "cert1", ExpiresUtc = DateTimeOffset.UtcNow.AddHours(-1), }; var validToken = new OioIdwsToken { CertificateThumbprint = "cert2", ExpiresUtc = DateTimeOffset.UtcNow.AddHours(1), }; var cacheMock = new Mock <ITokenCache>(); cacheMock .Setup(x => x.RetrieveAsync(accessToken)) .ReturnsAsync(expiredToken); var handler = new TokenHandler(validToken); Func <HttpClient> clientFactory = () => new HttpClient(handler) { BaseAddress = new Uri("http://dummy") }; var sut = new RestTokenProvider(clientFactory, cacheMock.Object); sut.Initialize(null, null, new Mock <ILogger>().Object); var tokenResult = await sut.RetrieveTokenAsync(accessToken); Assert.IsTrue(tokenResult.Success); Assert.AreEqual(validToken.CertificateThumbprint, tokenResult.Result.CertificateThumbprint); cacheMock.Verify(x => x.RetrieveAsync(accessToken)); }