public async Task Should_return_the_response_when_it_was_successful() { // arrange HttpRequestMessage request = new HttpRequestMessage(); HttpResponseMessage expected = new HttpResponseMessage(HttpStatusCode.OK); Mock <HttpMessageHandler> httpMessageHandlerMock = new Mock <HttpMessageHandler>(); httpMessageHandlerMock .Protected() .Setup <Task <HttpResponseMessage> >("SendAsync", request, ItExpr.IsAny <CancellationToken>()) .ReturnsAsync(expected); var sut = new HttpClientErrorHandlerAccessor() { InnerHandler = httpMessageHandlerMock.Object }; // act HttpResponseMessage actual = await sut .SendAsyncAccessor(request, CancellationToken.None); // assert actual.Should().BeSameAs(expected); }
public async Task Should_return_pid_plugin_unauthorized_exception_when_response_was_unauthorized() { // arrange HttpRequestMessage request = new HttpRequestMessage(); HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.Unauthorized); Mock <HttpMessageHandler> httpMessageHandlerMock = new Mock <HttpMessageHandler>(); httpMessageHandlerMock .Protected() .Setup <Task <HttpResponseMessage> >("SendAsync", request, ItExpr.IsAny <CancellationToken>()) .ReturnsAsync(response); var sut = new HttpClientErrorHandlerAccessor() { InnerHandler = httpMessageHandlerMock.Object }; // act await Assert.ThrowsAsync <PidPluginUnauthorizedException>(() => sut .SendAsyncAccessor(request, CancellationToken.None)); }
public async Task Should_return_pid_plugin_exception_when_response_was_not_successfull_with_unhandled_http_code() { // arrange HttpRequestMessage request = new HttpRequestMessage(); HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.InternalServerError); Mock <HttpMessageHandler> httpMessageHandlerMock = new Mock <HttpMessageHandler>(); httpMessageHandlerMock .Protected() .Setup <Task <HttpResponseMessage> >("SendAsync", request, ItExpr.IsAny <CancellationToken>()) .ReturnsAsync(response); var sut = new HttpClientErrorHandlerAccessor() { InnerHandler = httpMessageHandlerMock.Object }; // act var actual = await Assert.ThrowsAsync <PidPluginException>(() => sut .SendAsyncAccessor(request, CancellationToken.None)); actual.Message.Should().BeEquivalentTo(response.ReasonPhrase); }
public async Task Should_return_pid_plugin_validation_exception_with_its_message_when_response_was_bad_request() { // arrange string messageExpected = "error message description"; ErrorResponse errorResponse = new ErrorResponse() { Message = messageExpected }; HttpRequestMessage request = new HttpRequestMessage(); HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.BadRequest) { Content = new StringContent(JsonConvert.SerializeObject(errorResponse)) }; Mock <HttpMessageHandler> httpMessageHandlerMock = new Mock <HttpMessageHandler>(); httpMessageHandlerMock .Protected() .Setup <Task <HttpResponseMessage> >("SendAsync", request, ItExpr.IsAny <CancellationToken>()) .ReturnsAsync(response); var sut = new HttpClientErrorHandlerAccessor() { InnerHandler = httpMessageHandlerMock.Object }; // act var actual = await Assert.ThrowsAsync <PidPluginValidationException>(() => sut .SendAsyncAccessor(request, CancellationToken.None)); actual.Message.Should().BeEquivalentTo(messageExpected); }