public void OnError_HandlesUnauthorizedExceptions() { // Arrange IError error = new Error("TestError") .WithCode(ErrorCodes.Authentication.NotAuthorized); var expectedMessage = "You shall not pass."; // Act var actualError = _errorFilter.OnError(error); // Assert Assert.Equal(expectedMessage, actualError.Message); }
public void OnError_ErrorWithoutException_ShouldReturnErrorAsIs() { // Arrange IError error = ErrorBuilder.New() .SetMessage("Error occurred") .Build(); var filter = new ErrorFilter(); // Act IError result = filter.OnError(error); // Assert result.Should().Be(error); }
public void OnError_WithException_ShouldSetErrorCode() { // Arrange IError error = ErrorBuilder.New() .SetMessage("Error occurred") .SetException(new NotImplementedException()) .Build(); var filter = new ErrorFilter(); // Act IError result = filter.OnError(error); // Assert result.Code.Should().Be("NOT_IMPLEMENTED"); }
public void OnError_WithExceptionContainingProperties_ShouldSetErrorData() { // Arrange IError error = ErrorBuilder.New() .SetMessage("Error occurred") .SetException(new PropertiesException(123, "abc")) .Build(); var filter = new ErrorFilter(); // Act IError result = filter.OnError(error); // Assert result.Extensions.Keys.Should().Contain("data"); var data = result.Extensions["data"] as IReadOnlyDictionary <string, object>; data.Should().NotBeNull(); data["paramA"].Should().Be(123); data["paramB"].Should().Be("abc"); }