public void FailWhenModelStateIsInvalid() { // Arrange var modelValidationFilterAttribute = new ModelValidationFilterAttribute(); var modelState = new ModelStateDictionary(); var actionContext = new ActionContext( new Mock <HttpContext>().Object, new Mock <RouteData>().Object, new Mock <ActionDescriptor>().Object, modelState ); var actionExcecutingContext = new ActionExecutingContext( actionContext, new List <IFilterMetadata>(), new Dictionary <string, object>(), new Mock <Controller>() ); modelState.AddModelError("name", "invalid"); // Act modelValidationFilterAttribute.OnActionExecuting(actionExcecutingContext); // Assert Assert.Equal(((ValidationFailedResult)actionExcecutingContext.Result).StatusCode, 422); }
public void PassWhenModelStateIsValid() { // Arrange var modelValidationFilterAttribute = new ModelValidationFilterAttribute(); var modelState = new ModelStateDictionary(); var actionContext = new ActionContext( new Mock <HttpContext>().Object, new Mock <RouteData>().Object, new Mock <ActionDescriptor>().Object, modelState ); var actionExcecutingContext = new ActionExecutingContext( actionContext, new List <IFilterMetadata>(), new Dictionary <string, object>(), new Mock <Controller>() ); // Act modelValidationFilterAttribute.OnActionExecuting(actionExcecutingContext); // Assert Assert.Equal(actionExcecutingContext.Result, null); }
public void ModelValidationFilterAttribute_ShouldThrowArgumentException_IfModelIsInvalid() { // Arrange var validationFilter = new ModelValidationFilterAttribute(); var modelState = new ModelStateDictionary(); modelState.AddModelError("year", "invalid"); var actionContext = new ActionContext( Mock.Of <HttpContext>(), Mock.Of <RouteData>(), Mock.Of <ActionDescriptor>(), modelState ); var actionExecutingContext = new ActionExecutingContext( actionContext, new List <IFilterMetadata>(), new Dictionary <string, object>(), Mock.Of <Controller>() ); // Act var exception = Record.Exception(() => validationFilter.OnActionExecuting(actionExecutingContext)); // Assert Assert.IsType <ArgumentException>(exception); Assert.Equal("invalid", exception.Message); }
public void ModelValidationFilter_InvalidCarModel_BadRequestResult() { var modelState = new ModelStateDictionary(); modelState.AddModelError("", "error"); var httpContext = new DefaultHttpContext(); var context = new ActionExecutingContext( new ActionContext( httpContext: httpContext, routeData: new RouteData(), actionDescriptor: new ActionDescriptor(), modelState: modelState ), new List <IFilterMetadata>(), new Dictionary <string, object>(), new Mock <Controller>().Object); var sut = new ModelValidationFilterAttribute(); sut.OnActionExecuting(context); Assert.IsType <BadRequestObjectResult>(context.Result); }