public void When_behave_Running_then_completes_until_running_behaviour() { _calledAndSuccessTimes = 0; var seq = new ExclusiveSequence( new BehaviourAction(CalledAndSuccess), new BehaviourAction(CalledAndRunning), new BehaviourAction(CalledAndSuccess)); var returnCode = seq.Behave(); Assert.AreEqual(1, _calledAndSuccessTimes); Assert.AreEqual(BehaviourReturnCode.Running, returnCode); }
public void When_running_Then_re_evaluate_and_complete_with_many_behave_calls() { var sequence = new ExclusiveSequence( new BehaviourAction(CalledAndSuccess), new BehaviourAction(new TestHelper().RunningTwiceThenSuccess) ); Assert.AreEqual(BehaviourReturnCode.Running, sequence.Behave()); Assert.AreEqual(BehaviourReturnCode.Running, sequence.Behave()); Assert.AreEqual(BehaviourReturnCode.Running, sequence.Behave()); Assert.AreEqual(BehaviourReturnCode.Success, sequence.Behave()); Assert.AreEqual(4, _calledAndSuccessTimes); }
public void When_behave_running_takes_up_re_evaluating_prev_conditions() { var called = 0; var exclusive = new ExclusiveSequence(new Conditional(() => { called++; return true; }), TestHelper.CreateRunningAction(), TestHelper.CreateRunningAction(), TestHelper.CreateSuccessAction() ); exclusive.Behave(); exclusive.Behave(); Assert.AreEqual(2, called); }