public void TryValidateModelWithInvalidModelNoPrefix_ReturnsFalse() { // Arrange var model = new TryValidateModelModel(); var validationResult = new[] { new ModelValidationResult(string.Empty, "Out of range!") }; var validator1 = new Mock <IModelValidator>(); validator1.Setup(v => v.Validate(It.IsAny <ModelValidationContext>())) .Returns(validationResult); var provider = new Mock <IModelValidatorProvider>(); provider.Setup(v => v.GetValidators(It.IsAny <ModelMetadata>())) .Returns(new[] { validator1.Object }); var binder = new Mock <IModelBinder>(); var controller = GetController(binder.Object, provider: null); controller.BindingContext.ValidatorProvider = provider.Object; // Act var result = controller.TryValidateModel(model); // Assert Assert.False(result); Assert.Equal(1, controller.ModelState.Count); var error = Assert.Single(controller.ModelState["IntegerProperty"].Errors); Assert.Equal("Out of range!", error.ErrorMessage); }
public void TryValidateModelEmptyBindingContextThrowsException() { // Arrange var controller = new Controller(); var model = new TryValidateModelModel(); // Act & Assert var exception = Assert.Throws <InvalidOperationException>(() => controller.TryValidateModel(model)); Assert.Equal("The 'BindingContext' property of 'Microsoft.AspNet.Mvc.Controller' must not be null.", exception.Message); }
public void TryValidateModelWithValidModel_ReturnsTrue() { // Arrange var binder = new Mock <IModelBinder>(); var controller = GetController(binder.Object, provider: null); controller.BindingContext.ValidatorProvider = Mock.Of <IModelValidatorProvider>(); var model = new TryValidateModelModel(); // Act var result = controller.TryValidateModel(model); // Assert Assert.True(result); Assert.True(controller.ModelState.IsValid); }
public void ValidateModelWithInvalidModel() { // Arrange Controller controller = new SimpleController(); TryValidateModelModel model = new TryValidateModelModel { IntegerProperty = 5 }; // Act & Assert ExceptionHelper.ExpectInvalidOperationException( () => controller.ValidateModel(model, "Prefix"), "The model of type '" + model.GetType().FullName + "' is not valid."); Assert.AreEqual("Out of range!", controller.ModelState["Prefix.IntegerProperty"].Errors[0].ErrorMessage); }
public void ValidateModelWithValidModel() { // Arrange Controller controller = new SimpleController(); TryValidateModelModel model = new TryValidateModelModel { IntegerProperty = 15 }; // Act controller.ValidateModel(model); // Assert Assert.IsTrue(controller.ModelState.IsValid); }
public void TryValidateModelWithInvalidModel() { // Arrange Controller controller = new SimpleController(); TryValidateModelModel model = new TryValidateModelModel { IntegerProperty = 5 }; // Act bool result = controller.TryValidateModel(model, "Prefix"); // Assert Assert.IsFalse(result); Assert.AreEqual("Out of range!", controller.ModelState["Prefix.IntegerProperty"].Errors[0].ErrorMessage); }
public void TryValidateModelEmptyBindingContextThrowsException() { // Arrange var controller = new TestableController(); var model = new TryValidateModelModel(); // Act & Assert var exception = Assert.Throws<InvalidOperationException>(() => controller.TryValidateModel(model)); Assert.Equal("The 'BindingContext' property of 'Microsoft.AspNet.Mvc.Controller' must not be null.", exception.Message); }
public void TryValidateModelWithInvalidModelNoPrefix_ReturnsFalse() { // Arrange var model = new TryValidateModelModel(); var validationResult = new[] { new ModelValidationResult(string.Empty, "Out of range!") }; var validator1 = new Mock<IModelValidator>(); validator1.Setup(v => v.Validate(It.IsAny<ModelValidationContext>())) .Returns(validationResult); var provider = new Mock<IModelValidatorProvider>(); provider.Setup(v => v.GetValidators(It.IsAny<ModelValidatorProviderContext>())) .Callback<ModelValidatorProviderContext>(c => c.Validators.Add(validator1.Object)); var binder = new Mock<IModelBinder>(); var controller = GetController(binder.Object, provider: null); controller.BindingContext.ValidatorProvider = provider.Object; // Act var result = controller.TryValidateModel(model); // Assert Assert.False(result); Assert.Equal(1, controller.ModelState.Count); var error = Assert.Single(controller.ModelState["IntegerProperty"].Errors); Assert.Equal("Out of range!", error.ErrorMessage); }
public void TryValidateModelWithValidModel_ReturnsTrue() { // Arrange var binder = new Mock<IModelBinder>(); var controller = GetController(binder.Object, provider: null); controller.BindingContext.ValidatorProvider = Mock.Of<IModelValidatorProvider>(); var model = new TryValidateModelModel(); // Act var result = controller.TryValidateModel(model); // Assert Assert.True(result); Assert.True(controller.ModelState.IsValid); }
public void TryValidateModel_Succeeds_WithoutValidatorMetadata() { // Arrange // Do not add a Mock validator provider to this test. Test is intended to demonstrate ease of unit testing // and exercise DataAnnotationsModelValidatorProvider, avoiding #3586 regressions. var model = new TryValidateModelModel(); var controller = GetController(binder: null, valueProvider: null); // Act var result = controller.TryValidateModel(model); // Assert Assert.True(controller.ModelState.IsValid); }