コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        public void ValidateModelWithValidModel() {
            // Arrange
            Controller controller = new SimpleController();
            TryValidateModelModel model = new TryValidateModelModel { IntegerProperty = 15 };

            // Act
            controller.ValidateModel(model);

            // Assert
            Assert.IsTrue(controller.ModelState.IsValid);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
ファイル: ControllerTests.cs プロジェクト: RehanSaeed/Mvc
        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);
        }
コード例 #8
0
ファイル: ControllerTests.cs プロジェクト: RehanSaeed/Mvc
        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);
        }
コード例 #9
0
ファイル: ControllerTests.cs プロジェクト: RehanSaeed/Mvc
        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);
        }
コード例 #10
0
        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);
        }