public async Task GeoCode_NonSuccessStatusCode() { // ARRANGE var keyVaultServiceMock = new Mock <IAzureKeyVaultService>(); var httpClientFactoryMock = new Mock <IHttpClientFactory>(); var clientHandlerStub = new DelegatingHandlerStub((request, cancellationToken) => { var response = new HttpResponseMessage(HttpStatusCode.BadGateway); return(Task.FromResult(response)); } ); var client = new HttpClient(clientHandlerStub); var unitUnderTest = new GoogleApiService(keyVaultServiceMock.Object, httpClientFactoryMock.Object); var apiKey = "APIKEY"; keyVaultServiceMock.Setup(mock => mock.GetSecret("GoogleApiKey")) .ReturnsAsync(() => apiKey).Verifiable(); httpClientFactoryMock.Setup(mock => mock.CreateClient(It.IsAny <string>())) .Returns(client).Verifiable(); // ACT var _ = await unitUnderTest.GeoCode("825 Redwood Lane", "Papillion", "NE", "68046"); }
public async Task ValidateAsync_Valid_ReturnSecurityToken() { #region arrange var var jwtToken = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImFiYyJ9.eyJpc3MiOiJodHRwczovL2FwcGxlaWQuYXBwbGUuY29tIiwiYXVkIjoiYS5iLmMiLCJleHAiOjIxNDc0ODM2NDcsImlhdCI6MzMzODI1MjMwLCJzdWIiOiIwMDAwMDAueHh4eC4xMTExIiwiY19oYXNoIjoieHh4eCIsImVtYWlsIjoieHh4eEBwcml2YXRlcmVsYXkuYXBwbGVpZC5jb20iLCJlbWFpbF92ZXJpZmllZCI6InRydWUiLCJpc19wcml2YXRlX2VtYWlsIjoidHJ1ZSIsImF1dGhfdGltZSI6MzMzODI1MjMwLCJub25jZV9zdXBwb3J0ZWQiOnRydWV9.Dmm0_tSmjT4DEXtMprCmP3oDoThZJqVmNh1tcsdqRpkt7-V0jqVrYFaqkiLK8W6293MJhKma-blwkscNdcw4zUQxhP1JeHrByFopQqXp-COY_lR4QjzKZU1qyIKdHkCkvODwxWP3bLDeG8GVFue3OzK8IpeRrV5ad7IZOoSFKJpXnTInRvHGx_B1XJdCLjXDgo9DrwsICL5IP1GLa1dWl0NnenaQzoijwsxaTERxSOLaA0uCIrXAq0QM5RREqBFV-uDkE-4JwF0jXVYnnmNtammOW79zZE9ylWzXdioyNcP4dbOHgi4wWfXIlJw2v8Iswx9HcbtoM-R_D__83-7lCg"; var jsonKey = "{'kty':'RSA','e':'AQAB','use':'sig','kid':'abc','alg':'RS256','n':'k7al_Uc5ld-2nv7Nn9V9oSeOEsxOT32wXBsUDV3aIJktZxJ58RFkX7LvFckHjFt8Du7R1jkV5jzZP2YBD6GzX5pPwAagL6t0PCvKs23bGfzxwweYf5llO483Gp7wZkpfTItIfiz0fAqOR-NKNweiJ0SaIk1hRUwCdwbUCOXFnDVa6l5MABRIKfjRmuhljSYeqnCYRZepVIaybJR8DdGTByJdgTl_1H91P_ySLCulA4B-7fVY2u_E93avbRyrOqxX6QXw1DjVIZpzPBRXmC1WlZNwbL770P-Y0IKs2Hsl791S6CIO2ax8X3LZBieLFOGYOOVVHGCzH4-Cpd0FOTUVEQ'}"; var expected = "{\"alg\":\"RS256\",\"typ\":\"JWT\",\"kid\":\"abc\"}.{\"iss\":\"https://appleid.apple.com\",\"aud\":\"a.b.c\",\"exp\":2147483647,\"iat\":333825230,\"sub\":\"000000.xxxx.1111\",\"c_hash\":\"xxxx\",\"email\":\"[email protected]\",\"email_verified\":\"true\",\"is_private_email\":\"true\",\"auth_time\":333825230,\"nonce_supported\":true}"; #endregion var appleResponse = new AppleKeysResponse { Keys = new[] { new JsonWebKey(jsonKey) } }; var handlerStub = new DelegatingHandlerStub(new HttpResponseMessage() { StatusCode = HttpStatusCode.OK, Content = new StringContent(JsonSerializer.Serialize(appleResponse, new JsonSerializerOptions() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase })), }); var client = new HttpClient(handlerStub); var verifier = new AppleVerifier(client); var result = await verifier.ValidateAsync(jwtToken); result.Should().NotBeNull(); result.ToString().Should().Be(expected); }
public async Task RetrieveDataWithSuccessfulResponseAndData() { // ARRANGE var configurationMock = new Mock <IConfiguration>(); var httpClientFactoryMock = new Mock <System.Net.Http.IHttpClientFactory>(); var clientHandlerStub = new DelegatingHandlerStub((request, cancellationToken) => { var response = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(_goodResponseString, Encoding.UTF8) }; return(Task.FromResult(response)); } ); var client = new HttpClient(clientHandlerStub); var unitUnderTest = new GraphApiService(configurationMock.Object, httpClientFactoryMock.Object); httpClientFactoryMock.Setup(mock => mock.CreateClient(It.IsAny <string>())).Returns(client); // ACT var result = await unitUnderTest.RetrieveData("https://www.google.com", "Does not matter for this test as we are using a DelegatingHandler"); client.Dispose(); // ASSERT Assert.IsNotNull(result); Assert.AreEqual(_goodResponseString, result); }
public async Task RetrieveFranchises_UnsuccessfulResponse() { // ARRANGE var appCache = (IAppCache)_context.Properties["appCache"]; var configuration = (IConfiguration)_context.Properties["configuration"]; var httpClientFactoryMock = new Mock <IHttpClientFactory>(); var clientHandlerStub = new DelegatingHandlerStub((request, cancellationToken) => { var response = new HttpResponseMessage(HttpStatusCode.BadRequest) { Content = new StringContent(_badResponseString, Encoding.UTF8) }; return(Task.FromResult(response)); }); var client = new HttpClient(clientHandlerStub); var unitUnderTest = new ProgramDataService(appCache, configuration, httpClientFactoryMock.Object); httpClientFactoryMock.Setup(mock => mock.CreateClient(It.IsAny <string>())) .Returns(client).Verifiable(); var bearerToken = "SAMPLETOKEN"; // ACT var _ = await unitUnderTest.RetrieveFranchises(ProgramDataSources.ClearCare, bearerToken); }
public async void Create_GetUserAsync() { Environment.SetEnvironmentVariable("USERS_SERVICE_HTTP", "users-service.api.converge-app.net"); var expected = ""; var mockFactory = new Mock <IHttpClientFactory>(); var configuration = new HttpConfiguration(); var clientHandlerStub = new DelegatingHandlerStub((request, cancellationToken) => { request.SetConfiguration(configuration); var response = request.CreateResponse(HttpStatusCode.OK, expected); return(Task.FromResult(response)); }); var client = new HttpClient(clientHandlerStub); mockFactory.Setup(_ => _.CreateClient(It.IsAny <string>())).Returns(client); IHttpClientFactory factory = mockFactory.Object; var controller = new Client(factory); //Act var result = await controller.GetUserAsync("123"); //Assert Assert.NotNull(expected); }
public async Task RetrieveData_SuccessfulResponseAndUnexpectedDataResponse() { // ARRANGE var appCache = (IAppCache)_context.Properties["appCache"]; var httpClientFactoryMock = new Mock <IHttpClientFactory>(); var keyVaultServiceMock = new Mock <IAzureKeyVaultService>(); var configuration = (IConfiguration)_context.Properties["configuration"]; var clientHandlerStub = new DelegatingHandlerStub(); var client = new HttpClient(clientHandlerStub); var unitUnderTest = new HISCTokenService(appCache, httpClientFactoryMock.Object, keyVaultServiceMock.Object, configuration); httpClientFactoryMock.Setup(mock => mock.CreateClient(It.IsAny <string>())) .Returns(client).Verifiable(); var clientId = "ClientId"; keyVaultServiceMock.Setup(mock => mock.GetSecret("BarerTokenClientId")) .ReturnsAsync(() => clientId).Verifiable(); var appKey = "ClientSecret"; keyVaultServiceMock.Setup(mock => mock.GetSecret("BarerTokenClientSecret")) .ReturnsAsync(() => appKey).Verifiable(); // ACT var _ = await unitUnderTest.RetrieveToken(); }
private void SetupWithMockHttpClientFactory(bool success = true) { var mockHttpClientFactory = new Mock <IHttpClientFactory>(); var clientHandlerStub = new DelegatingHandlerStub(success); var client = new HttpClient(clientHandlerStub); mockHttpClientFactory.Setup(_ => _.CreateClient(It.IsAny <string>())).Returns(client); _mailgunEmailService = new MailgunEmailService(mockHttpClientFactory.Object, new LoggerFactory(), Options.Create(_emailSettings)); }
// Mock IHttpClientFactory private Mock <IHttpClientFactory> getMockHttpClientFactory() { var mockHttpClientFactory = new Mock <IHttpClientFactory>(); var clientHandlerStub = new DelegatingHandlerStub(); var client = new HttpClient(clientHandlerStub); mockHttpClientFactory.Setup(_ => _.CreateClient(It.IsAny <string>())) .Returns(client); return(mockHttpClientFactory); }
private static IHttpClientFactory GetHttpClientFactory(HttpStatusCode httpStatusCode, HttpContent responseBody) { var mockFactory = new Mock <IHttpClientFactory>(); var clientHandlerStub = new DelegatingHandlerStub(httpStatusCode, responseBody); var client = new HttpClient(clientHandlerStub); mockFactory.Setup(_ => _.CreateClient(It.IsAny <string>())).Returns(client); return(mockFactory.Object); }
public async void PostOrderShouldReturn() { var clientHandlerStub = new DelegatingHandlerStub(); var client = new HttpClient(clientHandlerStub); var sut = new ExternalMobileTelecomsNetworkService(options, client); var actual = await sut.PostOrder(expectedOrder); actual.Should().BeTrue(); }
public async Task RefreshTokenAsync_AppleReturnError_ThrowAppleAuthException() { var responseData = "error"; var handlerStub = new DelegatingHandlerStub(new HttpResponseMessage() { StatusCode = HttpStatusCode.BadRequest, Content = new StringContent(responseData) }); var client = GetClient(AutoFaker.Generate <AppleAuthSetting>(), handlerStub); await FluentActions.Invoking(() => client.RefreshTokenAsync("abc")).Should().ThrowAsync <AppleAuthException>().WithMessage(responseData); }
protected HttpClient GetHttpClient(string responseContent) { var handler = new DelegatingHandlerStub((request, cancellationToken) => { request.SetConfiguration(new HttpConfiguration()); var response = request.CreateResponse(HttpStatusCode.OK); response.Content = new StringContent(responseContent); return(Task.FromResult(response)); }); return(new HttpClient(handler)); }
public async void ReturnFalseWhenPostOrderFails() { var clientHandlerStub = new DelegatingHandlerStub((request, cancellationToken) => Task.FromResult(new HttpResponseMessage(HttpStatusCode.InternalServerError) )); var client = new HttpClient(clientHandlerStub); var sut = new ExternalMobileTelecomsNetworkService(options, client); var actual = await sut.PostOrder(expectedOrder); actual.Should().BeFalse(); }
public static Mock <IHttpClientFactory> CreateMock(Func <HttpRequestMessage, CancellationToken, Task <HttpResponseMessage> > handler) { var mockFactory = new Mock <IHttpClientFactory>(); var clientHandlerStub = new DelegatingHandlerStub { HandlerFunc = handler }; var client = new HttpClient(clientHandlerStub); mockFactory.Setup(_ => _.CreateClient(It.IsAny <string>())).Returns(client); return(mockFactory); }
public async Task LoadAsync_Success() { // ARRANGE var bearerTokenProviderMock = new Mock <IBearerTokenProvider>(); var httpClientFactoryMock = new Mock <IHttpClientFactory>(); var unitUnderTest = new ResourceLoader(httpClientFactoryMock.Object, bearerTokenProviderMock.Object); var expected = new List <AgencyResponse> { new AgencyResponse { id = 4321, subdomain = "hisc1234" } }; var resourceResponse = new ResourceResponse <AgencyResponse> { results = expected, count = 1, next = "", previous = "" }; var json = System.Text.Json.JsonSerializer.Serialize(resourceResponse); var clientHandlerStub = new DelegatingHandlerStub((request, cancellationToken) => { var response = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(json, Encoding.UTF8) }; return(Task.FromResult(response)); } ); var client = new HttpClient(clientHandlerStub); var url = "http://test.url"; bearerTokenProviderMock.Setup(mock => mock.RetrieveToken()) .ReturnsAsync("token") .Verifiable(); httpClientFactoryMock.Setup(mock => mock.CreateClient(It.IsAny <string>())) .Returns(client) .Verifiable(); // ACT var results = await unitUnderTest.LoadAsync <AgencyResponse>(url); // ASSERT bearerTokenProviderMock.Verify(); httpClientFactoryMock.Verify(); Assert.AreEqual(1, results.Count); }
public async Task ValidateAsync_AppleReturnError_ThrowAppleAuthException() { var responseData = "error"; var jwtToken = _settings.InvalidJwtToken; var handlerStub = new DelegatingHandlerStub(new HttpResponseMessage() { StatusCode = HttpStatusCode.BadRequest, Content = new StringContent(responseData) }); var client = new HttpClient(handlerStub); var verifier = new AppleVerifier(client); await FluentActions.Invoking(() => verifier.ValidateAsync(jwtToken, _settings.Audience)).Should().ThrowAsync <AppleAuthException>().WithMessage(responseData); }
private static IHttpClientFactory GetHttpClientFactoryMock(HttpStatusCode statusCode, string stringContent) { var httpClientFactoryMock = Substitute.For <IHttpClientFactory>(); var clientHandlerStub = new DelegatingHandlerStub(statusCode, stringContent); var client = new HttpClient(clientHandlerStub); httpClientFactoryMock .CreateClient(Arg.Any <string>()) .Returns(client); return(httpClientFactoryMock); }
public void GetLoginUri_CreateAlwaysANewState() { var handlerStub = new DelegatingHandlerStub(null); var settings = new AppleAuthSetting("a", "b", "https://apple.com", "x y z"); var client = GetClient(settings, handlerStub); var result1 = client.GetLoginUri(); var result2 = client.GetLoginUri(); var query1 = System.Web.HttpUtility.ParseQueryString(result1.Query); var query2 = System.Web.HttpUtility.ParseQueryString(result2.Query); query1.Get("state").Should().NotBe(query2.Get("state")); }
public async Task RetrieveData_SuccessfulResponseAndUnexpectedDataResponse() { // ARRANGE var configurationMock = new Mock <IConfiguration>(); var httpClientFactoryMock = new Mock <System.Net.Http.IHttpClientFactory>(); var clientHandlerStub = new DelegatingHandlerStub(); var client = new HttpClient(clientHandlerStub); var unitUnderTest = new GraphApiService(configurationMock.Object, httpClientFactoryMock.Object); httpClientFactoryMock.Setup(mock => mock.CreateClient(It.IsAny <string>())).Returns(client); // ACT var _ = await unitUnderTest.RetrieveData("https://www.google.com", "Does not matter for this test as we are using a DelegatingHandler"); }
public async Task RetrieveToken_Success() { // ARRANGE var appCache = (IAppCache)_context.Properties["appCache"]; var bearerToken = new BearerTokenResponse { access_token = "token" }; var json = System.Text.Json.JsonSerializer.Serialize(bearerToken); var clientHandlerStub = new DelegatingHandlerStub((request, cancellationToken) => { var response = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(json, Encoding.UTF8) }; return(Task.FromResult(response)); } ); var client = new HttpClient(clientHandlerStub); var httpClientFactoryMock = new Mock <IHttpClientFactory>(); httpClientFactoryMock.Setup(mock => mock.CreateClient(It.IsAny <string>())) .Returns(client) .Verifiable(); var configurationMock = new Mock <IConfiguration>(); configurationMock.Setup(mock => mock[It.IsAny <string>()]) .Returns("http://test.url") .Verifiable(); var keyVaultMock = new Mock <IAzureKeyVaultService>(); var unitUnderTest = new BearerTokenProvider(appCache, httpClientFactoryMock.Object, configurationMock.Object, keyVaultMock.Object); // ACT var result = await unitUnderTest.RetrieveToken(); // ASSERT configurationMock.Verify(); httpClientFactoryMock.Verify(); Assert.IsNotNull(result); Assert.AreEqual(bearerToken.access_token, result); }
private HttpClient CreateValidFakeAppleHttpClient() { var appleResponse = new AppleKeysResponse { Keys = new[] { new JsonWebKey(_settings.JsonKey) } }; var handlerStub = new DelegatingHandlerStub(new HttpResponseMessage() { StatusCode = HttpStatusCode.OK, Content = new StringContent(JsonSerializer.Serialize(appleResponse, new JsonSerializerOptions() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase })), }); return(new HttpClient(handlerStub)); }
public async Task ValidateAsync_AppleDoenstReturnKid_ThrowAppleAuthException() { var jwtToken = _settings.InvalidJwtToken; var appleResponse = new AppleKeysResponse(); var handlerStub = new DelegatingHandlerStub(new HttpResponseMessage() { StatusCode = HttpStatusCode.OK, Content = new StringContent(JsonSerializer.Serialize(appleResponse, new JsonSerializerOptions() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase })), }); var client = new HttpClient(handlerStub); var verifier = new AppleVerifier(client); await FluentActions.Invoking(() => verifier.ValidateAsync(jwtToken, _settings.Audience)).Should().ThrowAsync <AppleAuthException>(); }
public void GetLoginUri_CreateWithRightQuery() { var handlerStub = new DelegatingHandlerStub(null); var settings = new AppleAuthSetting("a", "b", "https://apple.com", "x y z"); var client = GetClient(settings, handlerStub); var result = client.GetLoginUri(); var query = System.Web.HttpUtility.ParseQueryString(result.Query); query.AllKeys.Should().BeEquivalentTo("response_type", "client_id", "redirect_uri", "state", "scope", "response_mode"); query.Get("response_type").Should().Be("code id_token"); query.Get("client_id").Should().Be("b"); query.Get("redirect_uri").Should().Be("https://apple.com"); query.Get("scope").Should().Be("x y z"); query.Get("response_mode").Should().Be("form_post"); result.ToString().Should().Contain("redirect_uri=https%3a%2f%2fapple.com"); }
public async Task TimeZone_Success() { // ARRANGE var keyVaultServiceMock = new Mock <IAzureKeyVaultService>(); var httpClientFactoryMock = new Mock <IHttpClientFactory>(); var timeZoneResult = "{\"dstOffset\":3600,\"rawOffset\":-18000,\"status\":\"OK\",\"timeZoneId\":\"America/New_York\",\"timeZoneName\":\"Eastern Daylight Time\"}"; var expected = System.Text.Json.JsonSerializer.Deserialize <GoogleApiTimeZoneResult>(timeZoneResult); var clientHandlerStub = new DelegatingHandlerStub((request, cancellationToken) => { var response = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(timeZoneResult, Encoding.UTF8) }; return(Task.FromResult(response)); } ); var client = new HttpClient(clientHandlerStub); var unitUnderTest = new GoogleApiService(keyVaultServiceMock.Object, httpClientFactoryMock.Object); var apiKey = "APIKEY"; keyVaultServiceMock.Setup(mock => mock.GetSecret("GoogleApiKey")) .ReturnsAsync(() => apiKey).Verifiable(); httpClientFactoryMock.Setup(mock => mock.CreateClient(It.IsAny <string>())) .Returns(client).Verifiable(); var location = new GoogleApiLocation { lat = 41.1319017, lng = -96.0573302 }; // ACT var result = await unitUnderTest.TimeZone(location); client.Dispose(); // ASSERT keyVaultServiceMock.Verify(); httpClientFactoryMock.Verify(); Assert.AreEqual(expected.dstOffset, result.dstOffset); Assert.AreEqual(expected.rawOffset, result.rawOffset); Assert.AreEqual(expected.timeZoneName, result.timeZoneName); Assert.AreEqual(expected.timeZoneId, result.timeZoneId); }
public async Task RetrieveToken_Success() { // ARRANGE var appCache = (IAppCache)_context.Properties["appCache"]; var httpClientFactoryMock = new Mock <IHttpClientFactory>(); var keyVaultServiceMock = new Mock <IAzureKeyVaultService>(); var configuration = (IConfiguration)_context.Properties["configuration"]; var expectedAccessToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL2hpc2Nwcm9ncmFtZGF0YWR2LmF6dXJld2Vic2l0ZXMubmV0IiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNDNlNWRlYmEtMmM1NC00M2E0LTlhMTAtYzlmMTBiMWM2NmE1LyIsImlhdCI6MTU2Njk5NzUyNywibmJmIjoxNTY2OTk3NTI3LCJleHAiOjE1NjcwMDE0MjcsImFpbyI6IjQyRmdZR2grTGVPNmI2N09qMGx4VzdhL0NIa1NEUUE9IiwiYXBwaWQiOiJlNTBmMTE0Ny1lZGQxLTQ4NDItYmQzMS0wZjlmYTM1MjNhNjYiLCJhcHBpZGFjciI6IjEiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC80M2U1ZGViYS0yYzU0LTQzYTQtOWExMC1jOWYxMGIxYzY2YTUvIiwib2lkIjoiNzQxZWQ5OTUtM2UyOC00NWM3LWIyYzAtYzJiZTU5NGQwYjY0Iiwic3ViIjoiNzQxZWQ5OTUtM2UyOC00NWM3LWIyYzAtYzJiZTU5NGQwYjY0IiwidGlkIjoiNDNlNWRlYmEtMmM1NC00M2E0LTlhMTAtYzlmMTBiMWM2NmE1IiwidXRpIjoiZDF2dUNoWmp4MFNUalNZcjMyc0tBQSIsInZlciI6IjEuMCJ9.iERX4wBdjEouoNnCQFL4BrxCtRPID6P1WxQMGjxyRyYgF-ZX7vloB8Uw9j5bcLLO3u80C6W84vYct7IkHBrznzV2iRMe84yNTVbx9-87VvnJnilWiF0nHHWrBcnRqFJtckZM2qcUYbUMfDO_83fdoPaZAOUnc-h7qsu3MYXYxkBiNWpSQQbAgzIG4UM9eIYFYEnkBToGrOQz6NtB1JO00czfROYxFe2_dAGO8eQ5abRbHSwRLSxyzHQHXBfCKfw7S4CA6d0o-5Izo3HKxoYfxRUnBvDLdeIxs8LQDi5EFOv4rA0ioQOWskBNc6KiB5vyJjo0ZsBDjtc9Df_nEScbCw"; var jsonTokenResponse = "{\"token_type\":\"Bearer\",\"expires_in\":\"3599\",\"ext_expires_in\":\"3599\",\"expires_on\":\"1567001427\",\"not_before\":\"1566997527\",\"resource\":\"https://hiscprogramdatadv.azurewebsites.net\",\"access_token\":\"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCIsImtpZCI6ImllX3FXQ1hoWHh0MXpJRXN1NGM3YWNRVkduNCJ9.eyJhdWQiOiJodHRwczovL2hpc2Nwcm9ncmFtZGF0YWR2LmF6dXJld2Vic2l0ZXMubmV0IiwiaXNzIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvNDNlNWRlYmEtMmM1NC00M2E0LTlhMTAtYzlmMTBiMWM2NmE1LyIsImlhdCI6MTU2Njk5NzUyNywibmJmIjoxNTY2OTk3NTI3LCJleHAiOjE1NjcwMDE0MjcsImFpbyI6IjQyRmdZR2grTGVPNmI2N09qMGx4VzdhL0NIa1NEUUE9IiwiYXBwaWQiOiJlNTBmMTE0Ny1lZGQxLTQ4NDItYmQzMS0wZjlmYTM1MjNhNjYiLCJhcHBpZGFjciI6IjEiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC80M2U1ZGViYS0yYzU0LTQzYTQtOWExMC1jOWYxMGIxYzY2YTUvIiwib2lkIjoiNzQxZWQ5OTUtM2UyOC00NWM3LWIyYzAtYzJiZTU5NGQwYjY0Iiwic3ViIjoiNzQxZWQ5OTUtM2UyOC00NWM3LWIyYzAtYzJiZTU5NGQwYjY0IiwidGlkIjoiNDNlNWRlYmEtMmM1NC00M2E0LTlhMTAtYzlmMTBiMWM2NmE1IiwidXRpIjoiZDF2dUNoWmp4MFNUalNZcjMyc0tBQSIsInZlciI6IjEuMCJ9.iERX4wBdjEouoNnCQFL4BrxCtRPID6P1WxQMGjxyRyYgF-ZX7vloB8Uw9j5bcLLO3u80C6W84vYct7IkHBrznzV2iRMe84yNTVbx9-87VvnJnilWiF0nHHWrBcnRqFJtckZM2qcUYbUMfDO_83fdoPaZAOUnc-h7qsu3MYXYxkBiNWpSQQbAgzIG4UM9eIYFYEnkBToGrOQz6NtB1JO00czfROYxFe2_dAGO8eQ5abRbHSwRLSxyzHQHXBfCKfw7S4CA6d0o-5Izo3HKxoYfxRUnBvDLdeIxs8LQDi5EFOv4rA0ioQOWskBNc6KiB5vyJjo0ZsBDjtc9Df_nEScbCw\"}"; var clientHandlerStub = new DelegatingHandlerStub((request, cancellationToken) => { var response = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(jsonTokenResponse, Encoding.UTF8) }; return(Task.FromResult(response)); } ); var client = new HttpClient(clientHandlerStub); var unitUnderTest = new HISCTokenService(appCache, httpClientFactoryMock.Object, keyVaultServiceMock.Object, configuration); httpClientFactoryMock.Setup(mock => mock.CreateClient(It.IsAny <string>())) .Returns(client).Verifiable(); var clientId = "ClientId"; keyVaultServiceMock.Setup(mock => mock.GetSecret("BearerTokenClientId")) .ReturnsAsync(() => clientId).Verifiable(); var appKey = "ClientSecret"; keyVaultServiceMock.Setup(mock => mock.GetSecret("BearerTokenClientSecret")) .ReturnsAsync(() => appKey).Verifiable(); // ACT var token = await unitUnderTest.RetrieveToken(); client.Dispose(); // ASSERT httpClientFactoryMock.Verify(); Assert.AreEqual(expectedAccessToken, token); }
public ZipContentStorageHelperTests() { MockAxSecureConfiguration = new Mock <AxSecureUrlConfiguration>("http://host:5000/test/test"); MockAuthenticationHeaderValueProvider = new Mock <IAuthenticationHeaderValueProvider>(); MockHttpClientFactory = new Mock <IHttpClientFactory>(); var clientHandlerStub = new DelegatingHandlerStub((request, cancellationToken) => { var response = new HttpResponseMessage(System.Net.HttpStatusCode.OK); return(Task.FromResult(response)); }); var client = new HttpClient(clientHandlerStub); MockHttpClientFactory.Setup(x => x.CreateClient(It.IsAny <string>())).Returns(client); }
public async Task RetrieveFranchises_SuccessfulResponseAndUnexpectedDataResponse() { // ARRANGE var appCache = (IAppCache)_context.Properties["appCache"]; var configuration = (IConfiguration)_context.Properties["configuration"]; var httpClientFactoryMock = new Mock <IHttpClientFactory>(); var clientHandlerStub = new DelegatingHandlerStub(); var client = new HttpClient(clientHandlerStub); var unitUnderTest = new ProgramDataService(appCache, configuration, httpClientFactoryMock.Object); httpClientFactoryMock.Setup(mock => mock.CreateClient(It.IsAny <string>())) .Returns(client).Verifiable(); var bearerToken = "SAMPLETOKEN"; // ACT var _ = await unitUnderTest.RetrieveFranchises(ProgramDataSources.ClearCare, bearerToken); }
public async Task ValidateAsync_InvalidAudience_ThrowSecurityTokenInvalidAudienceException() { var appleResponse = new AppleKeysResponse { Keys = new[] { new JsonWebKey(AppleJsonKey) } }; var handlerStub = new DelegatingHandlerStub(new HttpResponseMessage() { StatusCode = HttpStatusCode.OK, Content = new StringContent(JsonSerializer.Serialize(appleResponse, new JsonSerializerOptions() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase })), }); var client = new HttpClient(handlerStub); var verifier = new AppleVerifier(client); await FluentActions.Invoking(() => verifier.ValidateAsync(ValidJwtToken, "badAud")).Should().ThrowAsync <SecurityTokenInvalidAudienceException>(); }
public async Task GetAccessTokenAsync_ReturnAccessToken() { _appleTokenGeneratorMock.Setup(e => e.Generate(It.IsAny <TimeSpan>())).Returns("abc"); var response = AutoFaker.Generate <AppleAccessToken>(); var handlerStub = new DelegatingHandlerStub(new HttpResponseMessage() { StatusCode = HttpStatusCode.OK, Content = new StringContent(JsonSerializer.Serialize(response, new JsonSerializerOptions() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase })), }); var client = GetClient(AutoFaker.Generate <AppleAuthSetting>(), handlerStub); var result = await client.GetAccessTokenAsync("abc"); result.Should().BeEquivalentTo(response); }
public async Task GeoCode_UnexpectedData() { // ARRANGE var keyVaultServiceMock = new Mock <IAzureKeyVaultService>(); var httpClientFactoryMock = new Mock <IHttpClientFactory>(); var clientHandlerStub = new DelegatingHandlerStub(); var client = new HttpClient(clientHandlerStub); var unitUnderTest = new GoogleApiService(keyVaultServiceMock.Object, httpClientFactoryMock.Object); var apiKey = "APIKEY"; keyVaultServiceMock.Setup(mock => mock.GetSecret("GoogleApiKey")) .ReturnsAsync(() => apiKey).Verifiable(); httpClientFactoryMock.Setup(mock => mock.CreateClient(It.IsAny <string>())) .Returns(client).Verifiable(); // ACT var _ = await unitUnderTest.GeoCode("825 Redwood Lane", "Papillion", "NE", "68046"); }