public void ReturnsBadRequestOnInvalidModelStateWithOtherThanGetRequest()
        {
            // Arrange
            var filter        = new ValidatorActionFilter();
            var filterContext = ActionExecutingContextProvider.GetActionExecutingContext("POST");

            filterContext.ModelState.AddModelError("Error", "An error has occured!");

            // Act
            filter.OnActionExecuting(filterContext);

            // Assert
            filterContext.HttpContext.Response.StatusCode.ShouldBe((int)HttpStatusCode.BadRequest);
        }
        public void ReturnsBadRequestOnInvalidModelStateWithGetRequest()
        {
            // Arrange
            var filter        = new ValidatorActionFilter();
            var filterContext = ActionExecutingContextProvider.GetActionExecutingContext("GET");

            filterContext.ModelState.AddModelError("Error", "An error has occured!");

            // Act
            filter.OnActionExecuting(filterContext);

            // Assert
            filterContext.Result.ShouldBeOfType <BadRequestResult>();
        }
        public void ResultContainsErrorMessagesInModelState()
        {
            // Arrange
            var filter        = new ValidatorActionFilter();
            var filterContext = ActionExecutingContextProvider.GetActionExecutingContext("POST");
            Dictionary <string, CustomModelStateEntry> errorsToExpect = ArrangeExpectedErrors(filterContext);

            // Act
            filter.OnActionExecuting(filterContext);

            // Assert
            var contentResult = filterContext.Result as ContentResult;

            contentResult.ShouldNotBeNull();
            contentResult.ContentType.ShouldBe("application/json");
            AssertThatReturnedErrorsMatchExpected(errorsToExpect, contentResult);
        }