コード例 #1
0
        public async Task Rethrows_original_exception_when_wrapped_sender_throws_exception()
        {
            var expectedException = new WaivesApiException();

            _sender
            .SendAsync(Arg.Any <HttpRequestMessageTemplate>())
            .Throws(expectedException);

            var actualException = await Assert.ThrowsAsync <WaivesApiException>(() =>
                                                                                _sut.SendAsync(_request));

            Assert.Same(expectedException, actualException);
        }
コード例 #2
0
        public async Task Logs_an_error_message_when_request_is_not_successful()
        {
            var exception = new WaivesApiException("an error message");

            _sender
            .SendAsync(Arg.Any <HttpRequestMessageTemplate>())
            .Throws(exception);

            await Assert.ThrowsAsync <WaivesApiException>(() =>
                                                          _sut.SendAsync(_request));

            _logEvents
            .HasMessage(exception.Message)
            .AtLevel(LogEventLevel.Error)
            .Once()
            .WithException(exception);
        }
コード例 #3
0
        public async Task Logs_a_sending_request_message_when_request_is_not_successful()
        {
            var exception = new WaivesApiException("an error message");

            _sender
            .SendAsync(Arg.Any <HttpRequestMessageTemplate>())
            .Throws(exception);

            await Assert.ThrowsAsync <WaivesApiException>(() =>
                                                          _sut.SendAsync(_request));

            _logEvents
            .HasMessage("Sending {RequestMethod} request to {RequestUri}")
            .AtLevel(LogEventLevel.Verbose)
            .Once()
            .WithPropertyValue("RequestMethod", $"\"{_request.Method}\"")
            .WithPropertyValue("RequestUri", _request.RequestUri);
        }
コード例 #4
0
        public async Task Logs_an_error_message_that_includes_the_inner_exception_message_if_set()
        {
            var innerException = new Exception("inner message");
            var exception      = new WaivesApiException("an error message", innerException);

            _sender
            .SendAsync(Arg.Any <HttpRequestMessageTemplate>())
            .Throws(exception);

            await Assert.ThrowsAsync <WaivesApiException>(() =>
                                                          _sut.SendAsync(_request));

            _logEvents
            .HasMessage("{Message} Inner exception: {InnerExceptionMessage}")
            .AtLevel(LogEventLevel.Error)
            .Once()
            .WithException(exception)
            .WithPropertyValue("Message", $"\"{exception.Message}\"")
            .WithPropertyValue("InnerExceptionMessage", $"\"{innerException.Message}\"");
        }