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 }); }
public void Visit(ParallelRule rule) { VisitedRules.Add(rule); foreach (var r in rule.ParallelRules) { r.Accept(this); } if (rule.ShouldGoFurtherDownTheGraph) { GoOnFurtherDownTheGraphBeyond(rule); } }
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; }