public void OnActionExecuted_SetsCorrectResultMessageIfExceptionHasFilterWithDerivedExceptionType() { var fakeContext = CreateFakeContext(); fakeContext.Exception = new ApplicationException(); var fakeFilter = new ReplyOnExceptionWithAttribute(typeof(Exception), StatusCodes.Status500InternalServerError) { ReplyMessage = "Any Result Message." }; fakeContext.ActionDescriptor.FilterDescriptors.Add(new FilterDescriptor(fakeFilter, 0)); testedFilter.OnActionExecuted(fakeContext); fakeContext.Result.Should().BeOfType <ObjectResult>() .Which.Value.Should().Be(fakeFilter.ReplyMessage); }
public void OnActionExecuted_SetsResultMessageOfMoreSpecializedFilterIfSeveralFittingFiltersAreSet() { var fakeContext = CreateFakeContext(); fakeContext.Exception = new ApplicationException(); fakeContext.ActionDescriptor.FilterDescriptors.Add(new FilterDescriptor(new ReplyOnExceptionWithAttribute(typeof(Exception), StatusCodes.Status501NotImplemented), 0)); var appropriateFilter = new ReplyOnExceptionWithAttribute(typeof(ApplicationException), StatusCodes.Status500InternalServerError) { ReplyMessage = "Any Result Message" }; fakeContext.ActionDescriptor.FilterDescriptors.Add(new FilterDescriptor(appropriateFilter, 0)); testedFilter.OnActionExecuted(fakeContext); fakeContext.Result.Should().BeOfType <ObjectResult>() .Which.Value.Should().Be(appropriateFilter.ReplyMessage); }