Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #4
0
        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);
        }