public CompareValidator(string otherField, string errorMessage)
     : base(errorMessage)
 {
     Debug.Assert(!String.IsNullOrEmpty(otherField));
     _otherField           = otherField;
     _clientValidationRule = new ModelClientValidationEqualToRule(errorMessage, otherField);
 }
예제 #2
0
        public void ModelClientValidationEqualToRuleUsesSetDisplayName()
        {
            Mock <ModelMetadataProvider> provider = new Mock <ModelMetadataProvider>();
            ModelMetadata metadata = new ModelMetadata(
                provider.Object,
                typeof(CompareObject),
                null,
                typeof(string),
                null
                );

            metadata.DisplayName = "CurrentProperty";

            CompareAttribute attr = new CompareAttribute("ComparePropertyWithDisplayName");

            attr.OtherPropertyDisplayName = "SetDisplayName";

            List <ModelClientValidationRule> ruleList = new List <ModelClientValidationRule>(
                attr.GetClientValidationRules(metadata, null)
                );
            ModelClientValidationRule        rule       = Assert.Single(ruleList);
            ModelClientValidationEqualToRule actualRule =
                Assert.IsType <ModelClientValidationEqualToRule>(rule);

            Assert.Equal(
                "'CurrentProperty' and 'SetDisplayName' do not match.",
                actualRule.ErrorMessage
                );
        }
예제 #3
0
        public IEnumerable <ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
        {
            var clientValidationRule = new ModelClientValidationEqualToRule(ErrorMessage, _dependentProperty);

            clientValidationRule.ValidationParameters.Add("dependentproperty", _dependentProperty);
            yield return(clientValidationRule);
        }
예제 #4
0
        public void GetClientValidationRulesReturnsModelClientValidationEqualToRule()
        {
            Mock <ModelMetadataProvider> provider = new Mock <ModelMetadataProvider>();
            Mock <ModelMetadata>         metadata = new Mock <ModelMetadata>(
                provider.Object,
                null,
                null,
                typeof(string),
                null
                );

            metadata.Setup(m => m.DisplayName).Returns("CurrentProperty");

            CompareAttribute attr = new CompareAttribute("CompareProperty");
            List <ModelClientValidationRule> ruleList = new List <ModelClientValidationRule>(
                attr.GetClientValidationRules(metadata.Object, null)
                );

            ModelClientValidationRule        rule       = Assert.Single(ruleList);
            ModelClientValidationEqualToRule actualRule =
                Assert.IsType <ModelClientValidationEqualToRule>(rule);

            Assert.Equal(
                "'CurrentProperty' and 'CompareProperty' do not match.",
                actualRule.ErrorMessage
                );
            Assert.Equal("equalto", actualRule.ValidationType);
            Assert.Equal("*.CompareProperty", actualRule.ValidationParameters["other"]);
        }
예제 #5
0
        public IEnumerable <ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
        {
            this.TrySetErrorMessage(_errorMessageDictionaryKey);

            var error = FormatErrorMessage(metadata.DisplayName);
            var rule  = new ModelClientValidationEqualToRule(error, _otherProperty);

            yield return(rule);
        }
예제 #6
0
        public IEnumerable <ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
        {
            ErrorMessage = UmbracoValidationHelper.GetPropertyValue(_propertyAlias);

            var error = FormatErrorMessage(metadata.DisplayName);
            var rule  = new ModelClientValidationEqualToRule(error, _otherProperty);

            yield return(rule);
        }
예제 #7
0
        public IEnumerable <ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
        {
            ErrorMessage = UmbracoValidationHelper.GetDictionaryItem(_errorMessageDictionaryKey, _defaultText);

            var error = FormatErrorMessage(metadata.DisplayName);
            var rule  = new ModelClientValidationEqualToRule(error, _otherProperty);

            yield return(rule);
        }
예제 #8
0
        public void ModelClientValidationEqualToRuleErrorMessageUsesOtherPropertyDisplayName()
        {
            Mock <ModelMetadataProvider> provider = new Mock <ModelMetadataProvider>();
            ModelMetadata metadata = new ModelMetadata(provider.Object, typeof(CompareObject), null, typeof(string), null);

            metadata.DisplayName = "CurrentProperty";

            CompareAttribute attr = new CompareAttribute("ComparePropertyWithDisplayName");
            List <ModelClientValidationRule> ruleList = new List <ModelClientValidationRule>(attr.GetClientValidationRules(metadata, null));

            Assert.Equal(ruleList.Count, 1);

            ModelClientValidationEqualToRule actualRule = ruleList[0] as ModelClientValidationEqualToRule;

            Assert.Equal("'CurrentProperty' and 'DisplayName' do not match.", actualRule.ErrorMessage);
            Assert.Equal("equalto", actualRule.ValidationType);
            Assert.Equal("*.ComparePropertyWithDisplayName", actualRule.ValidationParameters["other"]);
        }