public void Dispatch_WhenRequestHandlerThrowsAPactFailureException_TheExceptionIsNotLogged() { var exception = new PactFailureException("Something failed"); var nancyContext = new NancyContext { Request = new Request("GET", "/Test", "HTTP") }; var requestDispatcher = GetSubject(); _mockRequestHandler .When(x => x.Handle(Arg.Any<NancyContext>())) .Do(x => { throw exception; }); var response = requestDispatcher.Dispatch(nancyContext, CancellationToken.None).Result; _log.DidNotReceive().ErrorException(Arg.Any<string>(), Arg.Any<Exception>()); }
public void Dispatch_WhenRequestHandlerThrowsAPactFailureException_TheExceptionIsNotLogged() { var exception = new PactFailureException("Something failed"); var nancyContext = new NancyContext { Request = new Request("GET", "/Test", "HTTP") }; var requestDispatcher = GetSubject(); _mockRequestHandler .When(x => x.Handle(Arg.Any <NancyContext>())) .Do(x => { throw exception; }); var response = requestDispatcher.Dispatch(nancyContext, CancellationToken.None).Result; _log.DidNotReceive().ErrorException(Arg.Any <string>(), Arg.Any <Exception>()); }
public void Handle_WhenExpectionIsThrownHandlingRequest_ReasonPhraseAndBodyContentIsSetWithoutBackSlashes() { var nancyResponse = new Response { StatusCode = HttpStatusCode.OK }; var compareException = new PactFailureException("Something\r\n \t \\ failed"); const string expectedMessage = "Something failed"; var mockRequestMapper = Substitute.For <IProviderServiceRequestMapper>(); var mockResponseMapper = Substitute.For <INancyResponseMapper>(); var mockProviderRepository = Substitute.For <IMockProviderRepository>(); var nancyContext = new NancyContext { Request = new Request("GET", "/Test", "HTTP") }; mockRequestMapper .When(x => x.Convert(Arg.Any <Request>())) .Do(x => { throw compareException; }); mockResponseMapper .Convert(Arg.Any <ProviderServiceResponse>()) .Returns(nancyResponse); mockResponseMapper.Convert(Arg.Any <ProviderServiceResponse>()) .Returns(new Response { StatusCode = HttpStatusCode.InternalServerError }); IMockProviderRequestHandler handler = new MockProviderRequestHandler(mockRequestMapper, mockResponseMapper, mockProviderRepository); var response = handler.Handle(nancyContext); Assert.Equal(expectedMessage, response.ReasonPhrase); mockResponseMapper.Received(1).Convert(Arg.Is <ProviderServiceResponse>(x => BodyContentMatches(x, expectedMessage))); }
public void Handle_WhenExceptionIsThrownHandlingRequest_PactFailureExceptionIsThrown() { var compareException = new PactFailureException("Something\r\n \t \\ failed"); var nancyContext = new NancyContext { Request = new Request("GET", "/Test", "HTTP") }; var handler = GetSubject(); _mockRequestMapper .When(x => x.Convert(Arg.Any <Request>())) .Do(x => { throw compareException; }); _mockResponseMapper.Convert(Arg.Any <ProviderServiceResponse>()) .Returns(new Response { StatusCode = HttpStatusCode.InternalServerError }); Assert.Throws <PactFailureException>(() => handler.Handle(nancyContext)); }
public void Handle_WhenExceptionIsThrownHandlingRequest_PactFailureExceptionIsThrown() { var compareException = new PactFailureException("Something\r\n \t \\ failed"); var nancyContext = new NancyContext { Request = new Request("GET", "/Test", "HTTP") }; var handler = GetSubject(); _mockRequestMapper .When(x => x.Convert(Arg.Any<Request>())) .Do(x => { throw compareException; }); _mockResponseMapper.Convert(Arg.Any<ProviderServiceResponse>()) .Returns(new Response { StatusCode = HttpStatusCode.InternalServerError }); Assert.Throws<PactFailureException>(() => handler.Handle(nancyContext)); }
public void Handle_WhenExpectionIsThrownHandlingRequest_ReasonPhraseAndBodyContentIsSetWithoutBackSlashes() { var nancyResponse = new Response { StatusCode = HttpStatusCode.OK }; var compareException = new PactFailureException("Something\r\n \t \\ failed"); const string expectedMessage = "Something failed"; var mockRequestMapper = Substitute.For<IProviderServiceRequestMapper>(); var mockResponseMapper = Substitute.For<INancyResponseMapper>(); var mockProviderRepository = Substitute.For<IMockProviderRepository>(); var nancyContext = new NancyContext { Request = new Request("GET", "/Test", "HTTP") }; mockRequestMapper .When(x => x.Convert(Arg.Any<Request>())) .Do(x => { throw compareException; }); mockResponseMapper .Convert(Arg.Any<ProviderServiceResponse>()) .Returns(nancyResponse); mockResponseMapper.Convert(Arg.Any<ProviderServiceResponse>()) .Returns(new Response { StatusCode = HttpStatusCode.InternalServerError }); IMockProviderRequestHandler handler = new MockProviderRequestHandler(mockRequestMapper, mockResponseMapper, mockProviderRepository); var response = handler.Handle(nancyContext); Assert.Equal(expectedMessage, response.ReasonPhrase); mockResponseMapper.Received(1).Convert(Arg.Is<ProviderServiceResponse>(x => BodyContentMatches(x, expectedMessage))); }