public void GetValidatorsThrowsIfMetadataIsNull() {
            // Arrange
            DataErrorInfoModelValidatorProvider validatorProvider = new DataErrorInfoModelValidatorProvider();

            // Act & assert
            ExceptionHelper.ExpectArgumentNullException(
                delegate {
                    validatorProvider.GetValidators(null, new ControllerContext());
                }, "metadata");
        }
        public void GetValidatorsThrowsIfContextIsNull() {
            // Arrange
            DataErrorInfoModelValidatorProvider validatorProvider = new DataErrorInfoModelValidatorProvider();
            ModelMetadata metadata = _metadataProvider.GetMetadataForType(null, typeof(DataErrorInfo1));

            // Act & assert
            ExceptionHelper.ExpectArgumentNullException(
                delegate {
                    validatorProvider.GetValidators(metadata, null);
                }, "context");
        }
        public void GetValidatorsReturnsEmptyCollectionIfTypeNotIDataErrorInfo() {
            // Arrange
            DataErrorInfoModelValidatorProvider validatorProvider = new DataErrorInfoModelValidatorProvider();
            object model = new object();
            ModelMetadata metadata = _metadataProvider.GetMetadataForType(() => model, typeof(object));

            // Act
            ModelValidator[] validators = validatorProvider.GetValidators(metadata, new ControllerContext()).ToArray();

            // Assert
            Assert.AreEqual(0, validators.Length);
        }
        public void GetValidatorsReturnsValidatorForIDataErrorInfoRootType() {
            // Arrange
            DataErrorInfoModelValidatorProvider validatorProvider = new DataErrorInfoModelValidatorProvider();
            DataErrorInfo1 model = new DataErrorInfo1();
            ModelMetadata metadata = _metadataProvider.GetMetadataForType(() => model, typeof(DataErrorInfo1));
            Type[] expectedTypes = new Type[] {
                typeof(DataErrorInfoModelValidatorProvider.DataErrorInfoClassModelValidator)
            };

            // Act
            Type[] actualTypes = validatorProvider.GetValidators(metadata, new ControllerContext()).Select(v => v.GetType()).ToArray();

            // Assert
            CollectionAssert.AreEqual(expectedTypes, actualTypes);
        }
        public void PropertyValidator_Validate_DoesNotReadPropertyValue() {
            // Arrange
            ObservableModel model = new ObservableModel();
            ModelMetadata metadata = _metadataProvider.GetMetadataForProperty(() => model.TheProperty, typeof(ObservableModel), "TheProperty");
            ControllerContext controllerContext = new ControllerContext();

            // Act
            ModelValidator[] validators = new DataErrorInfoModelValidatorProvider().GetValidators(metadata, controllerContext).ToArray();
            ModelValidationResult[] results = validators.SelectMany(o => o.Validate(model)).ToArray();

            // Assert
            CollectionAssert.AreEqual(new Type[] { typeof(DataErrorInfoModelValidatorProvider.DataErrorInfoPropertyModelValidator) }, Array.ConvertAll(validators, o => o.GetType()), "Provider did not return expected validator.");
            CollectionAssert.AreEquivalent(new string[] { "TheProperty" }, model.GetColumnNamesPassed(), "Model.get_Item() was not called as expected.");
            Assert.AreEqual(0, results.Length);
            Assert.IsFalse(model.PropertyWasRead(), "Property should not have been read by provider or validator.");
        }
Exemplo n.º 6
0
 public ActionResult Index()
 {
     ModelValidatorProvider validatorProvider = new DataErrorInfoModelValidatorProvider();
     return View(GetValidators(typeof(Contact), validatorProvider));
 }