public void Validate_ShortCircuits_IfModelStateHasReachedMaxNumberOfErrors() { // Arrange var model = new ValidateAllPropertiesModel { RequiredString = null /* error */, RangedInt = 0 /* error */, ValidString = "cat" /* error */ }; var modelMetadata = GetModelMetadata(model); var node = new ModelValidationNode(modelMetadata, "theKey") { ValidateAllProperties = true }; var context = CreateContext(modelMetadata); context.ModelState.MaxAllowedErrors = 3; context.ModelState.AddModelError("somekey", "error text"); // Act node.Validate(context); // Assert Assert.Equal(3, context.ModelState.Count); Assert.IsType <TooManyModelErrorsException>(context.ModelState[""].Errors[0].Exception); Assert.Equal(ValidationAttributeUtil.GetRequiredErrorMessage("RequiredString"), context.ModelState["theKey.RequiredString"].Errors[0].ErrorMessage); Assert.False(context.ModelState.ContainsKey("theKey.RangedInt")); Assert.False(context.ModelState.ContainsKey("theKey.ValidString")); }
public void Validate_ValidateAllProperties_AddsValidationErrors() { // Arrange ValidateAllPropertiesModel model = new ValidateAllPropertiesModel { RequiredString = null /* error */, RangedInt = 0 /* error */, ValidString = "dog" }; ModelMetadata modelMetadata = GetModelMetadata(model); ControllerContext controllerContext = new ControllerContext { Controller = new EmptyController() }; ModelValidationNode node = new ModelValidationNode(modelMetadata, "theKey") { ValidateAllProperties = true }; controllerContext.Controller.ViewData.ModelState.AddModelError("theKey.RequiredString.Dummy", "existing Error Text"); // Act node.Validate(controllerContext); // Assert Assert.Null(controllerContext.Controller.ViewData.ModelState["theKey.RequiredString"]); Assert.Equal("existing Error Text", controllerContext.Controller.ViewData.ModelState["theKey.RequiredString.Dummy"].Errors[0].ErrorMessage); Assert.Equal("The field RangedInt must be between 10 and 30.", controllerContext.Controller.ViewData.ModelState["theKey.RangedInt"].Errors[0].ErrorMessage); Assert.Null(controllerContext.Controller.ViewData.ModelState["theKey.ValidString"]); Assert.Null(controllerContext.Controller.ViewData.ModelState["theKey"]); }
public void Validate_ValidateAllProperties_AddsValidationErrors() { // Arrange var model = new ValidateAllPropertiesModel { RequiredString = null /* error */, RangedInt = 0 /* error */, ValidString = "dog" }; var modelMetadata = GetModelMetadata(model); var node = new ModelValidationNode(modelMetadata, "theKey") { ValidateAllProperties = true }; var context = CreateContext(modelMetadata); context.ModelState.AddModelError("theKey.RequiredString.Dummy", "existing Error Text"); // Act node.Validate(context); // Assert Assert.False(context.ModelState.ContainsKey("theKey.RequiredString")); Assert.Equal("existing Error Text", context.ModelState["theKey.RequiredString.Dummy"].Errors[0].ErrorMessage); Assert.Equal("The field RangedInt must be between 10 and 30.", context.ModelState["theKey.RangedInt"].Errors[0].ErrorMessage); Assert.False(context.ModelState.ContainsKey("theKey.ValidString")); Assert.False(context.ModelState.ContainsKey("theKey")); }
public void Validate_ValidateAllProperties_AddsValidationErrors() { // Arrange ValidateAllPropertiesModel model = new ValidateAllPropertiesModel { RequiredString = null /* error */, RangedInt = 0 /* error */, ValidString = "dog" }; ModelMetadata modelMetadata = GetModelMetadata(model); HttpActionContext context = ContextUtil.CreateActionContext(); ModelValidationNode node = new ModelValidationNode(modelMetadata, "theKey") { ValidateAllProperties = true }; context.ModelState.AddModelError("theKey.RequiredString.Dummy", "existing Error Text"); // Act node.Validate(context); // Assert Assert.Null(context.ModelState["theKey.RequiredString"]); Assert.Equal("existing Error Text", context.ModelState["theKey.RequiredString.Dummy"].Errors[0].ErrorMessage); Assert.Equal("The field RangedInt must be between 10 and 30.", context.ModelState["theKey.RangedInt"].Errors[0].ErrorMessage); Assert.Null(context.ModelState["theKey.ValidString"]); Assert.Null(context.ModelState["theKey"]); }