public void NoClientRulesByDefault() {
            // Arrange
            ModelMetadata metadata = ModelMetadataProviders.Current.GetMetadataForProperty(() => 15, typeof(string), "Length");
            ControllerContext context = new ControllerContext();
            RequiredAttribute attribute = new RequiredAttribute();

            // Act
            DataAnnotations4ModelValidator validator = new DataAnnotations4ModelValidator(metadata, context, attribute);

            // Assert
            Assert.IsFalse(validator.GetClientValidationRules().Any());
        }
        public void ValuesSet() {
            // Arrange
            ModelMetadata metadata = ModelMetadataProviders.Current.GetMetadataForProperty(() => 15, typeof(string), "Length");
            ControllerContext context = new ControllerContext();
            RequiredAttribute attribute = new RequiredAttribute();

            // Act
            DataAnnotations4ModelValidator validator = new DataAnnotations4ModelValidator(metadata, context, attribute);

            // Assert
            Assert.AreSame(attribute, validator.Attribute);
            Assert.AreEqual(attribute.FormatErrorMessage("Length"), validator.ErrorMessage);
        }
Beispiel #3
0
        public void NoClientRulesByDefault()
        {
            // Arrange
            ModelMetadata     metadata  = ModelMetadataProviders.Current.GetMetadataForProperty(() => 15, typeof(string), "Length");
            ControllerContext context   = new ControllerContext();
            RequiredAttribute attribute = new RequiredAttribute();

            // Act
            DataAnnotations4ModelValidator validator = new DataAnnotations4ModelValidator(metadata, context, attribute);

            // Assert
            Assert.IsFalse(validator.GetClientValidationRules().Any());
        }
        public void ValidateWithIsValidTrue() {
            // Arrange
            ModelMetadata metadata = ModelMetadataProviders.Current.GetMetadataForProperty(() => 15, typeof(string), "Length");
            ControllerContext context = new ControllerContext();
            Mock<ValidationAttribute> attribute = new Mock<ValidationAttribute> { CallBase = true };
            attribute.Expect(a => a.IsValid(metadata.Model)).Returns(true);
            DataAnnotations4ModelValidator validator = new DataAnnotations4ModelValidator(metadata, context, attribute.Object);

            // Act
            IEnumerable<ModelValidationResult> result = validator.Validate(null);

            // Assert
            Assert.IsFalse(result.Any());
        }
Beispiel #5
0
        public void ValuesSet()
        {
            // Arrange
            ModelMetadata     metadata  = ModelMetadataProviders.Current.GetMetadataForProperty(() => 15, typeof(string), "Length");
            ControllerContext context   = new ControllerContext();
            RequiredAttribute attribute = new RequiredAttribute();

            // Act
            DataAnnotations4ModelValidator validator = new DataAnnotations4ModelValidator(metadata, context, attribute);

            // Assert
            Assert.AreSame(attribute, validator.Attribute);
            Assert.AreEqual(attribute.FormatErrorMessage("Length"), validator.ErrorMessage);
        }
        public void ValidateWithIsValidFalse() {
            // Arrange
            ModelMetadata metadata = ModelMetadataProviders.Current.GetMetadataForProperty(() => 15, typeof(string), "Length");
            ControllerContext context = new ControllerContext();
            Mock<ValidationAttribute> attribute = new Mock<ValidationAttribute> { CallBase = true };
            attribute.Expect(a => a.IsValid(metadata.Model)).Returns(false);
            DataAnnotations4ModelValidator validator = new DataAnnotations4ModelValidator(metadata, context, attribute.Object);

            // Act
            IEnumerable<ModelValidationResult> result = validator.Validate(null);

            // Assert
            var validationResult = result.Single();
            Assert.AreEqual("", validationResult.MemberName);
            Assert.AreEqual(attribute.Object.FormatErrorMessage("Length"), validationResult.Message);
        }
Beispiel #7
0
        public void ValidateWithIsValidTrue()
        {
            // Arrange
            ModelMetadata              metadata  = ModelMetadataProviders.Current.GetMetadataForProperty(() => 15, typeof(string), "Length");
            ControllerContext          context   = new ControllerContext();
            Mock <ValidationAttribute> attribute = new Mock <ValidationAttribute> {
                CallBase = true
            };

            attribute.Expect(a => a.IsValid(metadata.Model)).Returns(true);
            DataAnnotations4ModelValidator validator = new DataAnnotations4ModelValidator(metadata, context, attribute.Object);

            // Act
            IEnumerable <ModelValidationResult> result = validator.Validate(null);

            // Assert
            Assert.IsFalse(result.Any());
        }
Beispiel #8
0
        public void ValidateWithIsValidFalse()
        {
            // Arrange
            ModelMetadata              metadata  = ModelMetadataProviders.Current.GetMetadataForProperty(() => 15, typeof(string), "Length");
            ControllerContext          context   = new ControllerContext();
            Mock <ValidationAttribute> attribute = new Mock <ValidationAttribute> {
                CallBase = true
            };

            attribute.Expect(a => a.IsValid(metadata.Model)).Returns(false);
            DataAnnotations4ModelValidator validator = new DataAnnotations4ModelValidator(metadata, context, attribute.Object);

            // Act
            IEnumerable <ModelValidationResult> result = validator.Validate(null);

            // Assert
            var validationResult = result.Single();

            Assert.AreEqual("", validationResult.MemberName);
            Assert.AreEqual(attribute.Object.FormatErrorMessage("Length"), validationResult.Message);
        }
Beispiel #9
0
        public void AttributeWithIClientValidatableGetsClientValidationRules()
        {
            // Arrange
            var expected  = new ModelClientValidationStringLengthRule("Error", 1, 10);
            var context   = new ControllerContext();
            var metadata  = ModelMetadataProviders.Current.GetMetadataForType(() => null, typeof(string));
            var attribute = new Mock <ValidationAttribute> {
                CallBase = true
            };

            attribute.As <IClientValidatable>()
            .Expect(cv => cv.GetClientValidationRules(metadata, context))
            .Returns(new[] { expected })
            .Verifiable();
            var validator = new DataAnnotations4ModelValidator(metadata, context, attribute.Object);

            // Act
            ModelClientValidationRule actual = validator.GetClientValidationRules().Single();

            // Assert
            attribute.Verify();
            Assert.AreSame(expected, actual);
        }
        public void AttributeWithIClientValidatableGetsClientValidationRules() {
            // Arrange
            var expected = new ModelClientValidationStringLengthRule("Error", 1, 10);
            var context = new ControllerContext();
            var metadata = ModelMetadataProviders.Current.GetMetadataForType(() => null, typeof(string));
            var attribute = new Mock<ValidationAttribute> { CallBase = true };
            attribute.As<IClientValidatable>()
                     .Expect(cv => cv.GetClientValidationRules(metadata, context))
                     .Returns(new[] { expected })
                     .Verifiable();
            var validator = new DataAnnotations4ModelValidator(metadata, context, attribute.Object);

            // Act
            ModelClientValidationRule actual = validator.GetClientValidationRules().Single();

            // Assert
            attribute.Verify();
            Assert.AreSame(expected, actual);
        }