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); }
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); }
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); }
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}\""); }