public async void PexaApiTokenQueryRetrieveFromCache() { var query = new PexaApiTokenQuery() { AuthenticatedUser = new WCAUser(), BypassAndUpdateCache = false }; var credentialId = $"PEXA-API-token-for-user-{query.AuthenticatedUser.Id}"; var testTokenInCache = "{\"access_token\": \"Test Access Token in Cache\"}"; var testPexaApiTokenInCache = PexaApiToken.Success(JObject.Parse(testTokenInCache), Instant.FromUtc(2019, 7, 14, 2, 5)); var testTokenInVault = "{\"access_token\": \"Test Access Token in Vault\"}"; var testPexaApiTokenInVault = PexaApiToken.Success(JObject.Parse(testTokenInVault), Instant.FromUtc(2019, 7, 14, 2, 5)); using (var pexaTestKeyVaultClient = new PexaTestKeyVaultClient(credentialId, testPexaApiTokenInVault)) using (var testMemoryCache = new MemoryCache(Options.Create(new MemoryCacheOptions()))) { testMemoryCache.Set(credentialId, testPexaApiTokenInCache); var handlerUnderTest = new PexaApiTokenQueryHandler( pexaTestKeyVaultClient, new PexaApiTokenQuery.Validator(), testMemoryCache, Options.Create(new WCACoreSettings() { CredentialAzureKeyVaultUrl = "https://dummy" })); var result = await handlerUnderTest.Handle(query, new CancellationToken()); Assert.Equal("Test Access Token in Cache", result.AccessToken); } }
public async void PexaApiTokenOtherKeyVaultExceptionThrows() { var query = new PexaApiTokenQuery() { AuthenticatedUser = new WCAUser() }; var keyVaultErrorException = new KeyVaultErrorException(); using (var pexaTestKeyVaultClient = new PexaTestKeyVaultClient(keyVaultErrorException)) using (var memoryCache = new MemoryCache(Options.Create(new MemoryCacheOptions()))) { var handlerUnderTest = new PexaApiTokenQueryHandler( pexaTestKeyVaultClient, new PexaApiTokenQuery.Validator(), memoryCache, Options.Create(new WCACoreSettings() { CredentialAzureKeyVaultUrl = "https://dummy" })); await Assert.ThrowsAsync <KeyVaultErrorException>(async() => { var result = await handlerUnderTest.Handle(query, new CancellationToken()); }); } }
public async void PexaApiTokenForbiddenReturnsNull() { var query = new PexaApiTokenQuery() { AuthenticatedUser = new WCAUser() }; using (var httpResponseMessage = new HttpResponseMessage(HttpStatusCode.Forbidden)) { var keyVaultErrorException = new KeyVaultErrorException() { Response = new HttpResponseMessageWrapper(httpResponseMessage, null) }; using (var pexaTestKeyVaultClient = new PexaTestKeyVaultClient(keyVaultErrorException)) using (var memoryCache = new MemoryCache(Options.Create(new MemoryCacheOptions()))) { var handlerUnderTest = new PexaApiTokenQueryHandler( pexaTestKeyVaultClient, new PexaApiTokenQuery.Validator(), memoryCache, Options.Create(new WCACoreSettings() { CredentialAzureKeyVaultUrl = "https://dummy" })); var result = await handlerUnderTest.Handle(query, new CancellationToken()); Assert.Null(result); } } }
public async void PexaApiTokenQueryNoTokenReturnsNull() { var query = new PexaApiTokenQuery() { AuthenticatedUser = new WCAUser() }; using (var pexaTestKeyVaultClient = new PexaTestKeyVaultClient(null, null)) using (var memoryCache = new MemoryCache(Options.Create(new MemoryCacheOptions()))) { var handlerUnderTest = new PexaApiTokenQueryHandler( pexaTestKeyVaultClient, new PexaApiTokenQuery.Validator(), memoryCache, Options.Create(new WCACoreSettings() { CredentialAzureKeyVaultUrl = "https://dummy" })); var result = await handlerUnderTest.Handle(query, new CancellationToken()); Assert.Null(result); } }