예제 #1
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"]);
        }
예제 #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 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"]);
        }