public void FirstTestName() { var engine = new MagnumRulesEngine(); RuleDeclaration rule = CreateOnlineOrderRule(); engine.Add(rule); rule = CreateCustomerExistsRule(); engine.Add(rule); rule = CreateActiveNotPreferredRule(); engine.Add(rule); rule = CreatePreferredRule(); engine.Add(rule); var visitor = new StringNodeVisitor(); engine.Visit(visitor); Trace.WriteLine(visitor.Result); using (StatefulSession session = engine.CreateSession()) { session.Assert(CurrentOrder); session.Run(); } }
public void Only_those_that_are_matched_should_be_called() { var junction = new JoinNode <Customer>(_constantNode); junction.AddSuccessor(_actionNode); var alphaNodeA = new AlphaNode <Customer>(); alphaNodeA.AddSuccessor(junction); var joinJunction = new JoinNode <Customer>(alphaNodeA); var alphaNodeB = new AlphaNode <Customer>(); alphaNodeB.AddSuccessor(joinJunction); var actionNode = new ActionNode <Customer>(x => _secondaryCalled.Complete(x.Element.Object)); var joinJunction2 = new JoinNode <Customer>(alphaNodeA); joinJunction2.AddSuccessor(actionNode); var alphaNodeC = new AlphaNode <Customer>(); alphaNodeC.AddSuccessor(joinJunction2); var tree = new TypeNode <Customer>(); var isPreferred = new ConditionNode <Customer>(x => x.Preferred); isPreferred.AddSuccessor(alphaNodeA); tree.AddSuccessor(isPreferred); tree.AddSuccessor(alphaNodeB); var isActive = new ConditionNode <Customer>(x => x.Active); isActive.AddSuccessor(alphaNodeC); tree.AddSuccessor(isActive); var visitor = new StringNodeVisitor(); tree.Visit(visitor); Trace.WriteLine(visitor.Result); tree.Activate(_context); _session.Run(); _primaryCalled.IsCompleted.ShouldBeTrue(); _secondaryCalled.IsCompleted.ShouldBeFalse(); }
public void Setup() { _order = new OrderSubmitted(); _overLimit = MockRepository.GenerateMock<Action<OrderSubmitted>>(); _overLimit.Expect(x => x(_order)); _underLimit = MockRepository.GenerateMock<Action<OrderSubmitted>>(); _underLimit.Expect(x => x(_order)).Repeat.Never(); _engine = new MagnumRulesEngine(); AddOverLimitRule(); AddUnderLimitRule(); StringNodeVisitor visitor = new StringNodeVisitor(); _engine.Visit(visitor); Trace.WriteLine(visitor.Result); }
public void Setup() { _order = new OrderSubmitted(); _overLimit = MockRepository.GenerateMock <Action <OrderSubmitted> >(); _overLimit.Expect(x => x(_order)); _underLimit = MockRepository.GenerateMock <Action <OrderSubmitted> >(); _underLimit.Expect(x => x(_order)).Repeat.Never(); _engine = new MagnumRulesEngine(); AddOverLimitRule(); AddUnderLimitRule(); StringNodeVisitor visitor = new StringNodeVisitor(); _engine.Visit(visitor); Trace.WriteLine(visitor.Result); }
public void Only_those_that_are_matched_should_be_called() { var junction = new JoinNode<Customer>(_constantNode); junction.AddSuccessor(_actionNode); var alphaNodeA = new AlphaNode<Customer>(); alphaNodeA.AddSuccessor(junction); var joinJunction = new JoinNode<Customer>(alphaNodeA); var alphaNodeB = new AlphaNode<Customer>(); alphaNodeB.AddSuccessor(joinJunction); var actionNode = new ActionNode<Customer>(x => _secondaryCalled.Complete(x.Element.Object)); var joinJunction2 = new JoinNode<Customer>(alphaNodeA); joinJunction2.AddSuccessor(actionNode); var alphaNodeC = new AlphaNode<Customer>(); alphaNodeC.AddSuccessor(joinJunction2); var tree = new TypeNode<Customer>(); var isPreferred = new ConditionNode<Customer>(x => x.Preferred); isPreferred.AddSuccessor(alphaNodeA); tree.AddSuccessor(isPreferred); tree.AddSuccessor(alphaNodeB); var isActive = new ConditionNode<Customer>(x => x.Active); isActive.AddSuccessor(alphaNodeC); tree.AddSuccessor(isActive); var visitor = new StringNodeVisitor(); tree.Visit(visitor); Trace.WriteLine(visitor.Result); tree.Activate(_context); _session.Run(); _primaryCalled.IsCompleted.ShouldBeTrue(); _secondaryCalled.IsCompleted.ShouldBeFalse(); }
public void Setup() { _visitor = new StringNodeVisitor(); }