Пример #1
0
        public void AndOperator_CombinesRules_CanBeWithoutAnyViolation()
        {
            BusinessRule rule1 = new RuleThatNeverHasAViolation();
            BusinessRule rule2 = new RuleThatNeverHasAViolation();

            BusinessRule result = rule1 & rule2;

            IEnumerable <BusinessRuleViolation> violations = result.CheckRule();

            Assert.AreEqual(0, violations.Count());
        }
Пример #2
0
        public void AndOperator_CombinesRules_ViolationAreNotDistinct()
        {
            BusinessRule rule1 = new RuleThatAlwaysHasOneViolation();
            BusinessRule rule2 = new RuleThatAlwaysHasOneViolation();

            BusinessRule result = rule1 & rule2;

            IEnumerable <BusinessRuleViolation> violations = result.CheckRule();

            Assert.AreEqual(2, violations.Count());
            Assert.IsTrue(violations.All(v => v.ViolationMessage == "Always one violation"));
        }
Пример #3
0
        public void AndOperator_CombinesRules_AndResultsInViolationListThatIncludeBoth()
        {
            BusinessRule rule1 = new RuleThatAlwaysHasOneViolation();
            BusinessRule rule2 = new RuleThatAlwaysHasTwoViolations();

            BusinessRule result = rule1 & rule2;

            IEnumerable <BusinessRuleViolation> violations = result.CheckRule();

            Assert.AreEqual(3, violations.Count());
            Assert.IsTrue(violations.Any(v => v.ViolationMessage == "Always one violation"));
            Assert.IsTrue(violations.Any(v => v.ViolationMessage == "First violation"));
            Assert.IsTrue(violations.Any(v => v.ViolationMessage == "Second violation"));
        }