public void PropertyValidator_Validate_IDataErrorInfoContainerWithError() { // Arrange DataErrorInfo1 container = new DataErrorInfo1(); container["SomeStringProperty"] = "This is an error message."; ModelMetadata metadata = _metadataProvider.GetMetadataForProperty( () => container, typeof(DataErrorInfo1), "SomeStringProperty" ); var validator = new DataErrorInfoModelValidatorProvider.DataErrorInfoPropertyModelValidator( metadata, new ControllerContext() ); // Act ModelValidationResult[] result = validator.Validate(container).ToArray(); // Assert ModelValidationResult modelValidationResult = Assert.Single(result); Assert.Equal("This is an error message.", modelValidationResult.Message); }
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 Assert.Equal(expectedTypes, actualTypes); }
public void ClassValidator_Validate_IDataErrorInfoModelWithError() { // Arrange DataErrorInfo1 model = new DataErrorInfo1() { Error = "This is an error message." }; ModelMetadata metadata = _metadataProvider.GetMetadataForType( () => model, typeof(DataErrorInfo1) ); var validator = new DataErrorInfoModelValidatorProvider.DataErrorInfoClassModelValidator( metadata, new ControllerContext() ); // Act ModelValidationResult[] result = validator.Validate(null).ToArray(); // Assert ModelValidationResult modelValidationResult = Assert.Single(result); Assert.Equal("This is an error message.", modelValidationResult.Message); }
public void GetModelValidatorWithFailedPropertyValidatorsPreventsTypeValidatorFromRunning() { // Arrange ControllerContext context = new ControllerContext(); DataErrorInfo1 model = new DataErrorInfo1 { Error = "Some Type Error" }; model["SomeStringProperty"] = "Some Property Error"; model["SomeOtherStringProperty"] = "Some Other Property Error"; ModelMetadata metadata = ModelMetadataProviders.Current.GetMetadataForType( () => model, model.GetType() ); ModelValidator validator = ModelValidator.GetModelValidator(metadata, context); // Act List <ModelValidationResult> result = validator.Validate(null).ToList(); // Assert Assert.Equal(2, result.Count); Assert.Equal("SomeStringProperty", result[0].MemberName); Assert.Equal("Some Property Error", result[0].Message); Assert.Equal("SomeOtherStringProperty", result[1].MemberName); Assert.Equal("Some Other Property Error", result[1].Message); }
public void PropertyValidator_Validate_IDataErrorInfoContainerWithNoErrorReturnsEmptyResults() { // Arrange DataErrorInfo1 container = new DataErrorInfo1(); ModelMetadata metadata = _metadataProvider.GetMetadataForProperty(() => container, typeof(DataErrorInfo1), "SomeStringProperty"); var validator = new DataErrorInfoModelValidatorProvider.DataErrorInfoPropertyModelValidator(metadata, new ControllerContext()); // Act ModelValidationResult[] result = validator.Validate(container).ToArray(); // Assert Assert.Empty(result); }
public void ClassValidator_Validate_IDataErrorInfoModelWithNoErrorReturnsEmptyResults() { // Arrange DataErrorInfo1 model = new DataErrorInfo1(); ModelMetadata metadata = _metadataProvider.GetMetadataForType(() => model, typeof(DataErrorInfo1)); var validator = new DataErrorInfoModelValidatorProvider.DataErrorInfoClassModelValidator(metadata, new ControllerContext()); // Act ModelValidationResult[] result = validator.Validate(null).ToArray(); // Assert Assert.Empty(result); }
public void PropertyValidator_Validate_IDataErrorInfoSkipsErrorProperty() { // Arrange DataErrorInfo1 container = new DataErrorInfo1(); container["Error"] = "This should never be shown."; ModelMetadata metadata = _metadataProvider.GetMetadataForProperty(() => container, typeof(DataErrorInfo1), "Error"); var validator = new DataErrorInfoModelValidatorProvider.DataErrorInfoPropertyModelValidator(metadata, new ControllerContext()); // Act ModelValidationResult[] result = validator.Validate(container).ToArray(); // Assert Assert.Empty(result); }
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_NonIDataErrorInfoContainerReturnsEmptyResults() { // Arrange DataErrorInfo1 container = new DataErrorInfo1(); container["SomeStringProperty"] = "This is an error message."; ModelMetadata metadata = _metadataProvider.GetMetadataForProperty(() => container, typeof(DataErrorInfo1), "SomeStringProperty"); var validator = new DataErrorInfoModelValidatorProvider.DataErrorInfoPropertyModelValidator(metadata, new ControllerContext()); // Act ModelValidationResult[] result = validator.Validate(new object()).ToArray(); // Assert Assert.AreEqual(0, result.Length); }
public void GetModelValidatorWithPropertyLevelValidator() { // Arrange ControllerContext context = new ControllerContext(); DataErrorInfo1 model = new DataErrorInfo1(); model["SomeStringProperty"] = "Some Property Error"; ModelMetadata metadata = ModelMetadataProviders.Current.GetMetadataForType(() => model, model.GetType()); ModelValidator validator = ModelValidator.GetModelValidator(metadata, context); // Act ModelValidationResult result = validator.Validate(null).Single(); // Assert Assert.Equal("SomeStringProperty", result.MemberName); Assert.Equal("Some Property Error", result.Message); }
public void ClassValidator_Validate_IDataErrorInfoModelWithError() { // Arrange DataErrorInfo1 model = new DataErrorInfo1() { Error = "This is an error message." }; ModelMetadata metadata = _metadataProvider.GetMetadataForType(() => model, typeof(DataErrorInfo1)); var validator = new DataErrorInfoModelValidatorProvider.DataErrorInfoClassModelValidator(metadata, new ControllerContext()); // Act ModelValidationResult[] result = validator.Validate(null).ToArray(); // Assert ModelValidationResult modelValidationResult = Assert.Single(result); Assert.Equal("This is an error message.", modelValidationResult.Message); }
public void PropertyValidator_Validate_NonIDataErrorInfoContainerReturnsEmptyResults() { // Arrange DataErrorInfo1 container = new DataErrorInfo1(); container["SomeStringProperty"] = "This is an error message."; ModelMetadata metadata = _metadataProvider.GetMetadataForProperty(() => container, typeof(DataErrorInfo1), "SomeStringProperty"); var validator = new DataErrorInfoModelValidatorProvider.DataErrorInfoPropertyModelValidator(metadata, new ControllerContext()); // Act ModelValidationResult[] result = validator.Validate(new object()).ToArray(); // Assert Assert.Empty(result); }
public void PropertyValidator_Validate_IDataErrorInfoContainerWithError() { // Arrange DataErrorInfo1 container = new DataErrorInfo1(); container["SomeStringProperty"] = "This is an error message."; ModelMetadata metadata = _metadataProvider.GetMetadataForProperty(() => container, typeof(DataErrorInfo1), "SomeStringProperty"); var validator = new DataErrorInfoModelValidatorProvider.DataErrorInfoPropertyModelValidator(metadata, new ControllerContext()); // Act ModelValidationResult[] result = validator.Validate(container).ToArray(); // Assert ModelValidationResult modelValidationResult = Assert.Single(result); Assert.Equal("This is an error message.", modelValidationResult.Message); }
public void PropertyValidator_Validate_IDataErrorInfoSkipsErrorProperty() { // Arrange DataErrorInfo1 container = new DataErrorInfo1(); container["Error"] = "This should never be shown."; ModelMetadata metadata = _metadataProvider.GetMetadataForProperty(() => container, typeof(DataErrorInfo1), "Error"); var validator = new DataErrorInfoModelValidatorProvider.DataErrorInfoPropertyModelValidator(metadata, new ControllerContext()); // Act ModelValidationResult[] result = validator.Validate(container).ToArray(); // Assert Assert.Empty(result); }
public void ClassValidator_Validate_IDataErrorInfoModelWithNoErrorReturnsEmptyResults() { // Arrange DataErrorInfo1 model = new DataErrorInfo1(); ModelMetadata metadata = _metadataProvider.GetMetadataForType(() => model, typeof(DataErrorInfo1)); var validator = new DataErrorInfoModelValidatorProvider.DataErrorInfoClassModelValidator(metadata, new ControllerContext()); // Act ModelValidationResult[] result = validator.Validate(null).ToArray(); // Assert Assert.Empty(result); }
public void GetModelValidatorWithFailedPropertyValidatorsPreventsTypeValidatorFromRunning() { // Arrange ControllerContext context = new ControllerContext(); DataErrorInfo1 model = new DataErrorInfo1 { Error = "Some Type Error" }; model["SomeStringProperty"] = "Some Property Error"; model["SomeOtherStringProperty"] = "Some Other Property Error"; ModelMetadata metadata = ModelMetadataProviders.Current.GetMetadataForType(() => model, model.GetType()); ModelValidator validator = ModelValidator.GetModelValidator(metadata, context); // Act List<ModelValidationResult> result = validator.Validate(null).ToList(); // Assert Assert.Equal(2, result.Count); Assert.Equal("SomeStringProperty", result[0].MemberName); Assert.Equal("Some Property Error", result[0].Message); Assert.Equal("SomeOtherStringProperty", result[1].MemberName); Assert.Equal("Some Other Property Error", result[1].Message); }
public void GetModelValidatorWithPropertyLevelValidator() { // Arrange ControllerContext context = new ControllerContext(); DataErrorInfo1 model = new DataErrorInfo1(); model["SomeStringProperty"] = "Some Property Error"; ModelMetadata metadata = ModelMetadataProviders.Current.GetMetadataForType(() => model, model.GetType()); ModelValidator validator = ModelValidator.GetModelValidator(metadata, context); // Act ModelValidationResult result = validator.Validate(null).Single(); // Assert Assert.Equal("SomeStringProperty", result.MemberName); Assert.Equal("Some Property Error", result.Message); }
public void PropertyValidator_Validate_IDataErrorInfoContainerWithNoErrorReturnsEmptyResults() { // Arrange DataErrorInfo1 container = new DataErrorInfo1(); ModelMetadata metadata = _metadataProvider.GetMetadataForProperty(() => container, typeof(DataErrorInfo1), "SomeStringProperty"); var validator = new DataErrorInfoModelValidatorProvider.DataErrorInfoPropertyModelValidator(metadata, new ControllerContext()); // Act ModelValidationResult[] result = validator.Validate(container).ToArray(); // Assert Assert.AreEqual(0, result.Length); }