public async Task Then_If_Returns_Not_Found_Result_Returns_Default(int id, TestInternalApiConfiguration config) { //Arrange config.Url = "https://test.local"; var configuration = config; var response = new HttpResponseMessage { Content = new StringContent(""), StatusCode = HttpStatusCode.NotFound }; var getTestRequest = new GetTestRequestNoVersion(id); var expectedUrl = $"{config.Url}/{getTestRequest.GetUrl}"; var httpMessageHandler = MessageHandler.SetupMessageHandlerMock(response, expectedUrl); var client = new HttpClient(httpMessageHandler.Object); var clientFactory = new Mock <IHttpClientFactory>(); clientFactory.Setup(_ => _.CreateClient(It.IsAny <string>())).Returns(client); var actual = new InternalApiClient <TestInternalApiConfiguration>(clientFactory.Object, configuration, Mock.Of <IAzureClientCredentialHelper>()); //Act var actualResult = await actual.Get <string>(getTestRequest); //Assert Assert.IsNull(actualResult); }
public async Task Then_If_Returns_Error_Result_Returns_ErrorCode_With_Response(string responseContent, int id, TestInternalApiConfiguration config) { //Arrange config.Url = "https://test.local"; config.Identifier = ""; var configuration = config; var response = new HttpResponseMessage { Content = new StringContent(responseContent), StatusCode = HttpStatusCode.TooManyRequests }; var getTestRequest = new GetTestRequestNoVersion(id); var expectedUrl = $"{config.Url}/{getTestRequest.GetUrl}"; var httpMessageHandler = MessageHandler.SetupMessageHandlerMock(response, expectedUrl); var client = new HttpClient(httpMessageHandler.Object); var clientFactory = new Mock <IHttpClientFactory>(); clientFactory.Setup(_ => _.CreateClient(It.IsAny <string>())).Returns(client); var actual = new InternalApiClient <TestInternalApiConfiguration>(clientFactory.Object, configuration, Mock.Of <IAzureClientCredentialHelper>()); //Act var actualResult = await actual.GetWithResponseCode <string>(getTestRequest); //Assert Assert.IsNotNull(actualResult); actualResult.StatusCode.Should().Be(HttpStatusCode.TooManyRequests); actualResult.Body.Should().BeNull(); actualResult.ErrorContent.Should().Be(responseContent); }
public async Task Then_The_Bearer_Token_Is_Not_Added_If_Local_And_Default_Version_If_Not_Specified( int id, TestInnerApiConfiguration config) { //Arrange config.Url = "https://test.local"; var configuration = config; var response = new HttpResponseMessage { Content = new StringContent(""), StatusCode = HttpStatusCode.Accepted }; var getTestRequest = new GetTestRequestNoVersion(config.Url, id) { BaseUrl = config.Url }; var httpMessageHandler = MessageHandler.SetupMessageHandlerMock(response, getTestRequest.GetUrl); var client = new HttpClient(httpMessageHandler.Object); var hostingEnvironment = new Mock <IWebHostEnvironment>(); var clientFactory = new Mock <IHttpClientFactory>(); clientFactory.Setup(_ => _.CreateClient(It.IsAny <string>())).Returns(client); hostingEnvironment.Setup(x => x.EnvironmentName).Returns("Development"); var actual = new ApiClient <TestInnerApiConfiguration>(clientFactory.Object, configuration, hostingEnvironment.Object, Mock.Of <IAzureClientCredentialHelper>()); //Act await actual.Get <string>(getTestRequest); //Assert httpMessageHandler.Protected() .Verify <Task <HttpResponseMessage> >( "SendAsync", Times.Once(), ItExpr.Is <HttpRequestMessage>(c => c.Method.Equals(HttpMethod.Get) && c.Headers.FirstOrDefault(h => h.Key.Equals("X-Version")).Value.FirstOrDefault() == "1.0" && c.RequestUri.AbsoluteUri.Equals(getTestRequest.GetUrl) && c.Headers.Authorization == null), ItExpr.IsAny <CancellationToken>() ); }