public void CompositionTypeTakesRulesetInConsideration()
        {
            MetadataValidatedElement validatedElementForDefaultRuleset = new MetadataValidatedElement("");
            MetadataValidatedElement validatedElementForRulesetWithAnd = new MetadataValidatedElement("ruleset with and");
            MetadataValidatedElement validatedElementForRulesetWithOr  = new MetadataValidatedElement("ruleset with or");
            MetadataValidatedElement validatedElementForRulesetWithout = new MetadataValidatedElement("ruleset without");
            MethodInfo methodInfo = typeof(MetadataValidatedElementFixtureTestClass).GetMethod("MethodWithRuleset");

            validatedElementForDefaultRuleset.UpdateFlyweight(methodInfo);
            validatedElementForRulesetWithAnd.UpdateFlyweight(methodInfo);
            validatedElementForRulesetWithOr.UpdateFlyweight(methodInfo);
            validatedElementForRulesetWithout.UpdateFlyweight(methodInfo);

            Assert.AreEqual(CompositionType.Or, ((IValidatedElement)validatedElementForDefaultRuleset).CompositionType);
            Assert.AreEqual("message or", ((IValidatedElement)validatedElementForDefaultRuleset).CompositionMessageTemplate);
            Assert.AreEqual(null, ((IValidatedElement)validatedElementForDefaultRuleset).CompositionTag);

            Assert.AreEqual(CompositionType.And, ((IValidatedElement)validatedElementForRulesetWithAnd).CompositionType);
            Assert.AreEqual(null, ((IValidatedElement)validatedElementForRulesetWithAnd).CompositionMessageTemplate);
            Assert.AreEqual("composition tag", ((IValidatedElement)validatedElementForRulesetWithAnd).CompositionTag);

            Assert.AreEqual(CompositionType.Or, ((IValidatedElement)validatedElementForRulesetWithOr).CompositionType);
            Assert.AreEqual(Resources.TestMessageTemplate, ((IValidatedElement)validatedElementForRulesetWithOr).CompositionMessageTemplate);
            Assert.AreEqual(null, ((IValidatedElement)validatedElementForRulesetWithOr).CompositionTag);

            Assert.AreEqual(CompositionType.And, ((IValidatedElement)validatedElementForRulesetWithout).CompositionType);
            Assert.AreEqual(null, ((IValidatedElement)validatedElementForRulesetWithout).CompositionMessageTemplate);
            Assert.AreEqual(null, ((IValidatedElement)validatedElementForRulesetWithout).CompositionTag);
        }
コード例 #2
0
        public void NewInstanceIsClean()
        {
            MetadataValidatedElement validatedElement = new MetadataValidatedElement("ruleset");

            Assert.IsNull(((IValidatedElement)validatedElement).TargetType);
            Assert.IsNull(((IValidatedElement)validatedElement).MemberInfo);
            Assert.AreEqual(CompositionType.And, ((IValidatedElement)validatedElement).CompositionType);
            Assert.AreEqual(false, ((IValidatedElement)validatedElement).IgnoreNulls);

            IDictionary<string, MockValidatorAttribute> attributes
                = CollectValidatorAttributes(((IValidatedElement)validatedElement).GetValidatorDescriptors());
            Assert.AreEqual(0, attributes.Count);
        }
        public void NewInstanceIsClean()
        {
            MetadataValidatedElement validatedElement = new MetadataValidatedElement("ruleset");

            Assert.IsNull(((IValidatedElement)validatedElement).TargetType);
            Assert.IsNull(((IValidatedElement)validatedElement).MemberInfo);
            Assert.AreEqual(CompositionType.And, ((IValidatedElement)validatedElement).CompositionType);
            Assert.AreEqual(false, ((IValidatedElement)validatedElement).IgnoreNulls);

            IDictionary <string, MockValidatorAttribute> attributes
                = CollectValidatorAttributes(((IValidatedElement)validatedElement).GetValidatorDescriptors());

            Assert.AreEqual(0, attributes.Count);
        }
コード例 #4
0
        public void FlyweightUpdatedWithValidatedPropertyReferenceWithValidationOverridesReturnsOverridenValues()
        {
            MetadataValidatedElement validatedElement = new MetadataValidatedElement("");
            PropertyInfo propertyInfo = typeof(MetadataValidatedElementFixtureTestClass).GetProperty("PropertyWithValidationOverrides");

            validatedElement.UpdateFlyweight(propertyInfo);

            Assert.AreSame(typeof(string), ((IValidatedElement)validatedElement).TargetType);
            Assert.AreSame(propertyInfo, ((IValidatedElement)validatedElement).MemberInfo);
            Assert.AreEqual(CompositionType.Or, ((IValidatedElement)validatedElement).CompositionType);
            Assert.AreEqual(true, ((IValidatedElement)validatedElement).IgnoreNulls);

            IDictionary<string, MockValidatorAttribute> attributes
                = CollectValidatorAttributes(((IValidatedElement)validatedElement).GetValidatorDescriptors());
            Assert.AreEqual(1, attributes.Count);
            Assert.IsTrue(attributes.ContainsKey("property validator 1 message"));
        }
        public void FlyweightUpdatedWithValidatedPropertyReferenceWithValidationOverridesReturnsOverridenValues()
        {
            MetadataValidatedElement validatedElement = new MetadataValidatedElement("");
            PropertyInfo             propertyInfo     = typeof(MetadataValidatedElementFixtureTestClass).GetProperty("PropertyWithValidationOverrides");

            validatedElement.UpdateFlyweight(propertyInfo);

            Assert.AreSame(typeof(string), ((IValidatedElement)validatedElement).TargetType);
            Assert.AreSame(propertyInfo, ((IValidatedElement)validatedElement).MemberInfo);
            Assert.AreEqual(CompositionType.Or, ((IValidatedElement)validatedElement).CompositionType);
            Assert.AreEqual(true, ((IValidatedElement)validatedElement).IgnoreNulls);

            IDictionary <string, MockValidatorAttribute> attributes
                = CollectValidatorAttributes(((IValidatedElement)validatedElement).GetValidatorDescriptors());

            Assert.AreEqual(1, attributes.Count);
            Assert.IsTrue(attributes.ContainsKey("property validator 1 message"));
        }
        public void FlyweightUpdatedWithValidatedTypeReturnsCorrectValues()
        {
            MetadataValidatedElement validatedElement = new MetadataValidatedElement("");
            Type type = typeof(MetadataValidatedElementFixtureTestClass);

            validatedElement.UpdateFlyweight(type);

            Assert.AreSame(type, ((IValidatedElement)validatedElement).TargetType);
            Assert.AreSame(type, ((IValidatedElement)validatedElement).MemberInfo);
            Assert.AreEqual(CompositionType.And, ((IValidatedElement)validatedElement).CompositionType);
            Assert.AreEqual(false, ((IValidatedElement)validatedElement).IgnoreNulls);

            IDictionary <string, MockValidatorAttribute> attributes
                = CollectValidatorAttributes(((IValidatedElement)validatedElement).GetValidatorDescriptors());

            Assert.AreEqual(1, attributes.Count);
            Assert.IsTrue(attributes.ContainsKey("type validator 1 message"));
        }
        public void IgnoreNullsTakesRulesetInConsideration()
        {
            MetadataValidatedElement validatedElementForDefaultRuleset = new MetadataValidatedElement("");
            MetadataValidatedElement validatedElementForRuleset        = new MetadataValidatedElement("ruleset");
            MetadataValidatedElement validatedElementForRuleset2       = new MetadataValidatedElement("ruleset2");
            MethodInfo methodInfo = typeof(MetadataValidatedElementFixtureTestClass).GetMethod("MethodWithRuleset");

            validatedElementForDefaultRuleset.UpdateFlyweight(methodInfo);
            validatedElementForRuleset.UpdateFlyweight(methodInfo);
            validatedElementForRuleset2.UpdateFlyweight(methodInfo);

            Assert.AreEqual(false, ((IValidatedElement)validatedElementForDefaultRuleset).IgnoreNulls);
            Assert.AreEqual(null, ((IValidatedElement)validatedElementForDefaultRuleset).IgnoreNullsMessageTemplate);
            Assert.AreEqual(null, ((IValidatedElement)validatedElementForDefaultRuleset).IgnoreNullsTag);
            Assert.AreEqual(true, ((IValidatedElement)validatedElementForRuleset).IgnoreNulls);
            Assert.AreEqual("message", ((IValidatedElement)validatedElementForRuleset).IgnoreNullsMessageTemplate);
            Assert.AreEqual(null, ((IValidatedElement)validatedElementForRuleset).IgnoreNullsTag);
            Assert.AreEqual(true, ((IValidatedElement)validatedElementForRuleset2).IgnoreNulls);
            Assert.AreEqual(Resources.TestMessageTemplate, ((IValidatedElement)validatedElementForRuleset2).IgnoreNullsMessageTemplate);
            Assert.AreEqual("ignore nulls tag", ((IValidatedElement)validatedElementForRuleset2).IgnoreNullsTag);
        }
        public void FlyweightUpdatedWithValidatedMethodReferenceReturnsCorrectValues()
        {
            MetadataValidatedElement validatedElement = new MetadataValidatedElement("");
            MethodInfo methodInfo = typeof(MetadataValidatedElementFixtureTestClass).GetMethod("Method");

            validatedElement.UpdateFlyweight(methodInfo);

            Assert.AreSame(typeof(DateTime), ((IValidatedElement)validatedElement).TargetType);
            Assert.AreSame(methodInfo, ((IValidatedElement)validatedElement).MemberInfo);
            Assert.AreEqual(CompositionType.And, ((IValidatedElement)validatedElement).CompositionType);
            Assert.AreEqual(false, ((IValidatedElement)validatedElement).IgnoreNulls);

            IDictionary <string, MockValidatorAttribute> attributes
                = CollectValidatorAttributes(((IValidatedElement)validatedElement).GetValidatorDescriptors());

            Assert.AreEqual(4, attributes.Count);
            Assert.IsTrue(attributes.ContainsKey("method validator 1 message"));
            Assert.IsTrue(attributes.ContainsKey("method validator 2 message"));
            Assert.IsTrue(attributes.ContainsKey("method validator 3 message"));
            Assert.IsTrue(attributes.ContainsKey("method validator 4 message"));
        }
コード例 #9
0
        public void CompositionTypeTakesRulesetInConsideration()
        {
            MetadataValidatedElement validatedElementForDefaultRuleset = new MetadataValidatedElement("");
            MetadataValidatedElement validatedElementForRulesetWithAnd = new MetadataValidatedElement("ruleset with and");
            MetadataValidatedElement validatedElementForRulesetWithOr = new MetadataValidatedElement("ruleset with or");
            MetadataValidatedElement validatedElementForRulesetWithout = new MetadataValidatedElement("ruleset without");
            MethodInfo methodInfo = typeof(MetadataValidatedElementFixtureTestClass).GetMethod("MethodWithRuleset");

            validatedElementForDefaultRuleset.UpdateFlyweight(methodInfo);
            validatedElementForRulesetWithAnd.UpdateFlyweight(methodInfo);
            validatedElementForRulesetWithOr.UpdateFlyweight(methodInfo);
            validatedElementForRulesetWithout.UpdateFlyweight(methodInfo);

            Assert.AreEqual(CompositionType.Or, ((IValidatedElement)validatedElementForDefaultRuleset).CompositionType);
            Assert.AreEqual("message or", ((IValidatedElement)validatedElementForDefaultRuleset).CompositionMessageTemplate);
            Assert.AreEqual(null, ((IValidatedElement)validatedElementForDefaultRuleset).CompositionTag);

            Assert.AreEqual(CompositionType.And, ((IValidatedElement)validatedElementForRulesetWithAnd).CompositionType);
            Assert.AreEqual(null, ((IValidatedElement)validatedElementForRulesetWithAnd).CompositionMessageTemplate);
            Assert.AreEqual("composition tag", ((IValidatedElement)validatedElementForRulesetWithAnd).CompositionTag);

            Assert.AreEqual(CompositionType.Or, ((IValidatedElement)validatedElementForRulesetWithOr).CompositionType);
            Assert.AreEqual(Resources.TestMessageTemplate, ((IValidatedElement)validatedElementForRulesetWithOr).CompositionMessageTemplate);
            Assert.AreEqual(null, ((IValidatedElement)validatedElementForRulesetWithOr).CompositionTag);

            Assert.AreEqual(CompositionType.And, ((IValidatedElement)validatedElementForRulesetWithout).CompositionType);
            Assert.AreEqual(null, ((IValidatedElement)validatedElementForRulesetWithout).CompositionMessageTemplate);
            Assert.AreEqual(null, ((IValidatedElement)validatedElementForRulesetWithout).CompositionTag);
        }
コード例 #10
0
        public void IgnoreNullsTakesRulesetInConsideration()
        {
            MetadataValidatedElement validatedElementForDefaultRuleset = new MetadataValidatedElement("");
            MetadataValidatedElement validatedElementForRuleset = new MetadataValidatedElement("ruleset");
            MetadataValidatedElement validatedElementForRuleset2 = new MetadataValidatedElement("ruleset2");
            MethodInfo methodInfo = typeof(MetadataValidatedElementFixtureTestClass).GetMethod("MethodWithRuleset");

            validatedElementForDefaultRuleset.UpdateFlyweight(methodInfo);
            validatedElementForRuleset.UpdateFlyweight(methodInfo);
            validatedElementForRuleset2.UpdateFlyweight(methodInfo);

            Assert.AreEqual(false, ((IValidatedElement)validatedElementForDefaultRuleset).IgnoreNulls);
            Assert.AreEqual(null, ((IValidatedElement)validatedElementForDefaultRuleset).IgnoreNullsMessageTemplate);
            Assert.AreEqual(null, ((IValidatedElement)validatedElementForDefaultRuleset).IgnoreNullsTag);
            Assert.AreEqual(true, ((IValidatedElement)validatedElementForRuleset).IgnoreNulls);
            Assert.AreEqual("message", ((IValidatedElement)validatedElementForRuleset).IgnoreNullsMessageTemplate);
            Assert.AreEqual(null, ((IValidatedElement)validatedElementForRuleset).IgnoreNullsTag);
            Assert.AreEqual(true, ((IValidatedElement)validatedElementForRuleset2).IgnoreNulls);
            Assert.AreEqual(Resources.TestMessageTemplate, ((IValidatedElement)validatedElementForRuleset2).IgnoreNullsMessageTemplate);
            Assert.AreEqual("ignore nulls tag", ((IValidatedElement)validatedElementForRuleset2).IgnoreNullsTag);
        }
コード例 #11
0
        public void FlyweightUpdatedWithValidatedTypeReturnsCorrectValues()
        {
            MetadataValidatedElement validatedElement = new MetadataValidatedElement("");
            Type type = typeof(MetadataValidatedElementFixtureTestClass);

            validatedElement.UpdateFlyweight(type);

            Assert.AreSame(type, ((IValidatedElement)validatedElement).TargetType);
            Assert.AreSame(type, ((IValidatedElement)validatedElement).MemberInfo);
            Assert.AreEqual(CompositionType.And, ((IValidatedElement)validatedElement).CompositionType);
            Assert.AreEqual(false, ((IValidatedElement)validatedElement).IgnoreNulls);

            IDictionary<string, MockValidatorAttribute> attributes
                = CollectValidatorAttributes(((IValidatedElement)validatedElement).GetValidatorDescriptors());
            Assert.AreEqual(1, attributes.Count);
            Assert.IsTrue(attributes.ContainsKey("type validator 1 message"));
        }
コード例 #12
0
        public void FlyweightUpdatedWithValidatedMethodReferenceReturnsCorrectValues()
        {
            MetadataValidatedElement validatedElement = new MetadataValidatedElement("");
            MethodInfo methodInfo = typeof(MetadataValidatedElementFixtureTestClass).GetMethod("Method");

            validatedElement.UpdateFlyweight(methodInfo);

            Assert.AreSame(typeof(DateTime), ((IValidatedElement)validatedElement).TargetType);
            Assert.AreSame(methodInfo, ((IValidatedElement)validatedElement).MemberInfo);
            Assert.AreEqual(CompositionType.And, ((IValidatedElement)validatedElement).CompositionType);
            Assert.AreEqual(false, ((IValidatedElement)validatedElement).IgnoreNulls);

            IDictionary<string, MockValidatorAttribute> attributes
                = CollectValidatorAttributes(((IValidatedElement)validatedElement).GetValidatorDescriptors());
            Assert.AreEqual(4, attributes.Count);
            Assert.IsTrue(attributes.ContainsKey("method validator 1 message"));
            Assert.IsTrue(attributes.ContainsKey("method validator 2 message"));
            Assert.IsTrue(attributes.ContainsKey("method validator 3 message"));
            Assert.IsTrue(attributes.ContainsKey("method validator 4 message"));
        }