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)));
        }
示例#4
0
        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)));
        }