Пример #1
0
        public static RuleBuilder ParallelRootRule <T>(IEnumerable <T> ruleArguments, Func <T, RuleNode> ruleCreationFunc)
        {
            var parallelRule = new ParallelRule(ruleArguments.Select(ruleCreationFunc).ToList());

            return(new RuleBuilder {
                _rootRule = parallelRule, _lastRule = parallelRule
            });
        }
Пример #2
0
        public void Visit(ParallelRule rule)
        {
            VisitedRules.Add(rule);

            foreach (var r in rule.ParallelRules)
            {
                r.Accept(this);
            }
            if (rule.ShouldGoFurtherDownTheGraph)
            {
                GoOnFurtherDownTheGraphBeyond(rule);
            }
        }
Пример #3
0
        public void TextFixtureSetUp()
        {
            _mocks = new MockRepository();
            var rule1 = _mocks.StrictMock <RuleNode>();
            var rule2 = _mocks.StrictMock <RuleNode>();
            var rule3 = _mocks.StrictMock <RuleNode>();

            rule1.Expect(x => x.IsFulfiled).Return(true);
            rule2.Expect(x => x.IsFulfiled).Return(false);

            var parallelRule = new ParallelRule(new List <RuleNode> {
                rule1, rule2, rule3
            });

            _mocks.ReplayAll();

            _result = parallelRule.IsFulfiled;
        }