예제 #1
0
            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));
            }
예제 #2
0
            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));
            }
예제 #3
0
            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));
            }
예제 #4
0
        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));
        }
예제 #5
0
            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));
            }
예제 #6
0
            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));
            }
예제 #7
0
        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);
 }