public void WhenBothSucceed_ReturnSuccess() { var first = new MockBehaviour { ReturnStatus = BehaviourStatus.Succeeded }; var second = new MockBehaviour { ReturnStatus = BehaviourStatus.Succeeded }; var sut = new SimpleParallel <MockContext>(SimpleParallelPolicy.BothMustSucceed, first, second); var behaviourStatus = sut.Tick(new MockContext()); Assert.That(behaviourStatus, Is.EqualTo(BehaviourStatus.Succeeded)); }
public void WhenOneFailAndOtherIsStillRunning_ReturnRunning() { var first = new MockBehaviour { ReturnStatus = BehaviourStatus.Running }; var second = new MockBehaviour { ReturnStatus = BehaviourStatus.Failed }; var sut = new SimpleParallel <MockContext>(SimpleParallelPolicy.OnlyOneMustSucceed, first, second); var behaviourStatus = sut.Tick(new MockContext()); Assert.That(behaviourStatus, Is.EqualTo(BehaviourStatus.Running)); }
public void WhenOneSucceed_ReturnSuccessAndReset() { var first = new MockBehaviour { ReturnStatus = BehaviourStatus.Succeeded }; var second = new MockBehaviour { ReturnStatus = BehaviourStatus.Running }; var sut = new SimpleParallel <MockContext>(SimpleParallelPolicy.OnlyOneMustSucceed, first, second); var behaviourStatus = sut.Tick(new MockContext()); Assert.That(behaviourStatus, Is.EqualTo(BehaviourStatus.Succeeded)); Assert.That(first.ResetCount, Is.EqualTo(1)); Assert.That(second.ResetCount, Is.EqualTo(1)); }
public void WhenTickedAndInACompletedStatus_ChildrenShouldAllBeTicked(SimpleParallelPolicy policy) { var first = new MockBehaviour { ReturnStatus = BehaviourStatus.Succeeded }; var second = new MockBehaviour { ReturnStatus = BehaviourStatus.Succeeded }; var sut = new SimpleParallel <MockContext>(policy, first, second); sut.Tick(new MockContext()); sut.Tick(new MockContext()); Assert.That(first.UpdateCallCount, Is.EqualTo(2)); Assert.That(second.UpdateCallCount, Is.EqualTo(2)); }
public void WheOneFails_ReturnFailureAndReset() { var first = new MockBehaviour { ReturnStatus = BehaviourStatus.Failed }; var second = new MockBehaviour { ReturnStatus = BehaviourStatus.Succeeded }; var sut = new SimpleParallel <MockContext>(SimpleParallelPolicy.BothMustSucceed, first, second); var behaviourStatus = sut.Tick(new MockContext()); Assert.That(behaviourStatus, Is.EqualTo(BehaviourStatus.Failed)); Assert.That(first.ResetCount, Is.EqualTo(1)); Assert.That(second.ResetCount, Is.EqualTo(1)); }
public void WhenTickedAndSomeChildrenAreStillRunning_CompletedChildrenShouldNotBeTicked() { var first = new MockBehaviour { ReturnStatus = BehaviourStatus.Succeeded }; var second = new MockBehaviour { ReturnStatus = BehaviourStatus.Running }; var sut = new SimpleParallel <MockContext>(SimpleParallelPolicy.BothMustSucceed, first, second); sut.Tick(new MockContext()); sut.Tick(new MockContext()); Assert.That(first.UpdateCallCount, Is.EqualTo(1)); Assert.That(second.UpdateCallCount, Is.EqualTo(2)); }
public void WhenFirstTicked_ChildrenShouldAllBeStarted(SimpleParallelPolicy policy) { var first = new MockBehaviour { ReturnStatus = BehaviourStatus.Running }; var second = new MockBehaviour { ReturnStatus = BehaviourStatus.Running }; var sut = new SimpleParallel <MockContext>(policy, first, second); sut.Tick(new MockContext()); Assert.That(first.InitializeCallCount, Is.EqualTo(1)); Assert.That(second.InitializeCallCount, Is.EqualTo(1)); Assert.That(first.UpdateCallCount, Is.EqualTo(1)); Assert.That(second.UpdateCallCount, Is.EqualTo(1)); }
public void Visit(SimpleParallel <TContext> obj) { PrintNode(obj, obj.Policy); VisitChildren(obj); }