public void CanAddANewValidationRule()
        {
            var ruleSet = new StringTestSubjectRules();
            var rule    = new ValidationRule <StringTestSubject>(x => !String.IsNullOrEmpty(x.TestString1), "Rule");

            ruleSet.AddRule(rule);
        }
        public void DoesAddingANewValidationRuleWithExpressionIncrementListCount()
        {
            var ruleSet = new StringTestSubjectRules();
            var count   = ruleSet.ValidationRules.Count;

            var newCount = ruleSet.AddRule(x => !String.IsNullOrEmpty(x.TestString1), "Rule");

            Assert.AreEqual(count + 1, newCount);
        }
Esempio n. 3
0
        public void CanStringRequiredBeEnforcedWithMessage()
        {
            var rules = new StringTestSubjectRules();

            var result = rules.Validate(new StringTestSubject {
            });

            Assert.IsTrue(result.Errors.Any(e => e.Name == "TestString2_IsRequired"));
        }
Esempio n. 4
0
        public void CanStringRequiredBeEnforcedWithDefaultMessage()
        {
            var rules = new StringTestSubjectRules();

            var result = rules.Validate(new StringTestSubject {
            });

            Assert.IsTrue(result.Errors.Any(e => e.Name == "TestString3_IsRequired" && e.Message == "The 'TestString3' property is required."));
        }
        public void DoesAddingANewValidationRuleWithExpressionAndErrorMessageFuncIncrementListCount()
        {
            var ruleSet = new StringTestSubjectRules();
            var count   = ruleSet.ValidationRules.Count;

            var newCount = ruleSet.AddRule(x => !String.IsNullOrEmpty(x.TestString1), "Rule", m => "First name is required.");

            Assert.AreEqual(count + 1, newCount);
        }
        public void InvalidEntityValidatesBySpecificationAsInvalid()
        {
            var ruleSet = new StringTestSubjectRules();

            ruleSet.AddRule(x => !String.IsNullOrEmpty(x.TestString1), "TestString1Required.");
            var testSubject = new StringTestSubject();

            var result = ruleSet.Validate(testSubject);

            Assert.IsFalse(result.Valid);
        }
        public void ValidEntityValidatesBySpecificationAsValid()
        {
            var ruleSet     = new StringTestSubjectRules();
            var testSubject = new StringTestSubject {
                TestString1 = "Bob"
            };

            var result = ruleSet.Validate(testSubject);

            Assert.IsTrue(result.Valid);
        }
        public void CanValidateEntitySpecifications()
        {
            var ruleSet     = new StringTestSubjectRules();
            var testSubject = new StringTestSubject {
                TestString1 = "Bob"
            };

            var result = ruleSet.Validate(testSubject);

            Assert.IsNotNull(result);
        }
Esempio n. 9
0
        public void CanStringHaveMinimumLengthWithDefaultMessage()
        {
            var rules       = new StringTestSubjectRules();
            var testSubject = new StringTestSubject {
                TestString1 = "Alvin", TestString2 = "F", TestString3 = "S"
            };

            var result = rules.Validate(testSubject);

            Assert.IsTrue(result.Errors.Any(e => e.Name == "TestString3_MinimumLength" && e.Message == "The 'TestString3' property must be at least 3 characters long."));
        }
Esempio n. 10
0
        public void CanStringHaveMinimumLengthWithMessage()
        {
            var rules       = new StringTestSubjectRules();
            var testSubject = new StringTestSubject {
                TestString1 = "Alvin", TestString2 = "F", TestString3 = "S"
            };

            var result = rules.Validate(testSubject);

            Assert.IsFalse(result.Errors.Any(e => e.Name == "TestString1_MinimumLength"));
            Assert.IsTrue(result.Errors.Any(e => e.Name == "TestString2_MinimumLength"));
        }
Esempio n. 11
0
        public void CanStringHaveMaximumLengthWithMessageLambda()
        {
            var rules       = new StringTestSubjectRules();
            var testSubject = new StringTestSubject {
                TestString1 = "Alexandria", TestString2 = "Fred", TestString3 = "Smith"
            };

            var result = rules.Validate(testSubject);

            Assert.IsTrue(result.Errors.Any(e => e.Name == "TestString1_MaximumLength"));
            Assert.IsFalse(result.Errors.Any(e => e.Name == "TestString2_MaximumLength"));
        }
Esempio n. 12
0
        public void ValidatedEntityCanGetErrorsReported()
        {
            var ruleSet = new StringTestSubjectRules();

            ruleSet.AddRule(x => !String.IsNullOrEmpty(x.TestString1), "TestString1Required.");
            var testSubject = new StringTestSubject {
                TestString1 = "Bob"
            };

            ruleSet.Validate(testSubject);

            Assert.IsNotNull(testSubject.ValidationErrors);
        }
Esempio n. 13
0
        public void ValidatedEntityReportsErrors()
        {
            var ruleSet = new StringTestSubjectRules();

            ruleSet.AddRule(x => !String.IsNullOrEmpty(x.TestString2), "TestString2Required.");
            var testSubject = new StringTestSubject {
                TestString1 = "Bob"
            };

            ruleSet.Validate(testSubject);

            Assert.AreEqual(1, testSubject.ValidationErrors.Count);
        }
Esempio n. 14
0
        public void ValidationResultContainsPointerToEntityThatFailedValidation()
        {
            var ruleSet = new StringTestSubjectRules();

            ruleSet.AddRule(x => !String.IsNullOrEmpty(x.TestString1), "TestString1Required.");
            var testSubject = new StringTestSubject {
                TestString1 = "Bob"
            };

            var result = ruleSet.Validate(testSubject);

            Assert.AreEqual(testSubject, result.Entity);
        }
Esempio n. 15
0
        public void CanStringHavePatternWithDefaultMessage()
        {
            var rules       = new StringTestSubjectRules();
            var testSubject = new StringTestSubject {
                TestString1 = "Jim", TestString2 = "Klein", TestString3 = "Smith", TestString6 = "aaa"
            };

            var result = rules.Validate(testSubject);

            Assert.IsTrue(result.Errors.Any(e => e.Name == "TestString6_MatchesPattern" && e.Message == @"The 'TestString6' property must match the pattern '^\w{7}$'."));
            testSubject.TestString6 = "44976AZ";
            result = rules.Validate(testSubject);
            Assert.IsFalse(result.Errors.Any(e => e.Name == "TestString6_MatchesPattern"));
        }
Esempio n. 16
0
        public void CanStringHavePatternWithMessage()
        {
            var rules       = new StringTestSubjectRules();
            var testSubject = new StringTestSubject {
                TestString1 = "Jim", TestString2 = "Klein", TestString3 = "Smith", TestString5 = "aaa"
            };

            var result = rules.Validate(testSubject);

            Assert.IsTrue(result.Errors.Any(e => e.Name == "TestString5_MatchesPattern"));
            testSubject.TestString5 = "123-45-6789";
            result = rules.Validate(testSubject);
            Assert.IsFalse(result.Errors.Any(e => e.Name == "TestString5_MatchesPattern"));
        }
Esempio n. 17
0
        public void CanAddANewValidationRuleWithExpression()
        {
            var ruleSet = new StringTestSubjectRules();

            ruleSet.AddRule(x => !String.IsNullOrEmpty(x.TestString1), "Rule");
        }
Esempio n. 18
0
        public void AddingValidationRuleWithExpressionAndErrorMessageFuncRequiresName()
        {
            var ruleSet = new StringTestSubjectRules();

            ruleSet.AddRule(x => !String.IsNullOrEmpty(x.TestString1), null, m => "First name is required.");
        }
Esempio n. 19
0
        public void AddingValidationRuleWithExpressionAndErrorMessageFuncRequiresErrorMessage()
        {
            var ruleSet = new StringTestSubjectRules();

            ruleSet.AddRule(x => !String.IsNullOrEmpty(x.TestString1), "Rule", (Func <StringTestSubject, string>)null);
        }
Esempio n. 20
0
        public void CanAddANewValidationRuleWithExpressionAndErrorMessage()
        {
            var ruleSet = new StringTestSubjectRules();

            ruleSet.AddRule(x => !String.IsNullOrEmpty(x.TestString1), "Rule", "First name is required.");
        }
Esempio n. 21
0
        public void AddingValidationRuleWithExpressionRequiresName()
        {
            var ruleSet = new StringTestSubjectRules();

            ruleSet.AddRule(x => !String.IsNullOrEmpty(x.TestString1), null);
        }
Esempio n. 22
0
        public void AddingValidationRuleWithExpressionRequiresRule()
        {
            var ruleSet = new StringTestSubjectRules();

            ruleSet.AddRule(null, "Rule");
        }
Esempio n. 23
0
        public void AddingValidationRuleWithExpressionAndErrorMessageFuncRequiresRule()
        {
            var ruleSet = new StringTestSubjectRules();

            ruleSet.AddRule(null, "Rule", m => "First name is required.");
        }
Esempio n. 24
0
        public void AddingValidationRuleRequiresRule()
        {
            var ruleSet = new StringTestSubjectRules();

            ruleSet.AddRule(null);
        }