public void ShouldStartAllChildrenInParallel() { Parallel.Policy successPolicy = Parallel.Policy.ONE; Parallel.Policy failurePolicy = Parallel.Policy.ONE; MockNode firstChild = new MockNode(); MockNode secondChild = new MockNode(); Parallel sut = new Parallel(successPolicy, failurePolicy, firstChild, secondChild); TestRoot behaviorTree = CreateBehaviorTree(sut); behaviorTree.Start(); Assert.AreEqual(Node.State.ACTIVE, sut.CurrentState); Assert.AreEqual(Node.State.ACTIVE, firstChild.CurrentState); }
public void StopLowerPriorityChildrenForChild_WithoutImmediateRestart_ShouldThrowError() { Parallel.Policy failurePolicy = Parallel.Policy.ALL; Parallel.Policy successPolicy = Parallel.Policy.ALL; MockNode firstChild = new MockNode(); MockNode secondChild = new MockNode(); Parallel sut = new Parallel(successPolicy, failurePolicy, firstChild, secondChild); TestRoot behaviorTree = CreateBehaviorTree(sut); behaviorTree.Start(); firstChild.Finish(false); sut.StopLowerPriorityChildrenForChild(firstChild, false); }
public void ShouldSucceed_WhenNotAllChildrenFailed_AndFailPolicyAll_AndSucessPolicyOne() { Parallel.Policy failurePolicy = Parallel.Policy.ALL; Parallel.Policy successPolicy = Parallel.Policy.ONE; MockNode firstChild = new MockNode(); MockNode secondChild = new MockNode(); Parallel sut = new Parallel(successPolicy, failurePolicy, firstChild, secondChild); TestRoot behaviorTree = CreateBehaviorTree(sut); behaviorTree.Start(); firstChild.Finish(false); secondChild.Finish(true); Assert.AreEqual(Node.State.INACTIVE, sut.CurrentState); Assert.IsTrue(behaviorTree.DidFinish); Assert.IsTrue(behaviorTree.WasSuccess); }
public void StopLowerPriorityChildrenForChild_WithImmediateRestart_ShouldRestartChild() { Parallel.Policy failurePolicy = Parallel.Policy.ALL; Parallel.Policy successPolicy = Parallel.Policy.ALL; MockNode firstChild = new MockNode(); MockNode secondChild = new MockNode(); Parallel sut = new Parallel(successPolicy, failurePolicy, firstChild, secondChild); TestRoot behaviorTree = CreateBehaviorTree(sut); behaviorTree.Start(); firstChild.Finish(false); sut.StopLowerPriorityChildrenForChild(firstChild, true); Assert.AreEqual(Node.State.ACTIVE, sut.CurrentState); Assert.AreEqual(Node.State.ACTIVE, firstChild.CurrentState); Assert.AreEqual(Node.State.ACTIVE, secondChild.CurrentState); }
public void ShouldFail_WhenAllChildrenFailed_AndFailPolicyAll() { Parallel.Policy failurePolicy = Parallel.Policy.ALL; foreach (Parallel.Policy successPolicy in ALL_SUCCESS_POLICIES) { MockNode firstChild = new MockNode(); MockNode secondChild = new MockNode(); Parallel sut = new Parallel(successPolicy, failurePolicy, firstChild, secondChild); TestRoot behaviorTree = CreateBehaviorTree(sut); behaviorTree.Start(); firstChild.Finish(false); secondChild.Finish(false); Assert.AreEqual(Node.State.INACTIVE, sut.CurrentState); Assert.IsTrue(behaviorTree.DidFinish); Assert.IsFalse(behaviorTree.WasSuccess); } }
public void ShouldSucceed_WhenOneChildSuccessful_AndSuccessPolicyOne() { Parallel.Policy successPolicy = Parallel.Policy.ONE; foreach (Parallel.Policy failurePolicy in ALL_FAILURE_POLICIES) { MockNode firstChild = new MockNode(); MockNode secondChild = new MockNode(false); Parallel sut = new Parallel(successPolicy, failurePolicy, firstChild, secondChild); TestRoot behaviorTree = CreateBehaviorTree(sut); behaviorTree.Start(); firstChild.Finish(true); Assert.AreEqual(Node.State.INACTIVE, firstChild.CurrentState); Assert.AreEqual(Node.State.INACTIVE, secondChild.CurrentState); Assert.IsTrue(behaviorTree.DidFinish); Assert.IsTrue(behaviorTree.WasSuccess); } }
public void StopLowerPriorityChildrenForChild_WithoutImmediateRestart_ShouldThrowError() { Parallel.Policy failurePolicy = Parallel.Policy.ALL; Parallel.Policy successPolicy = Parallel.Policy.ALL; MockNode firstChild = new MockNode(); MockNode secondChild = new MockNode(); Parallel sut = new Parallel(successPolicy, failurePolicy, firstChild, secondChild); TestRoot behaviorTree = CreateBehaviorTree(sut); behaviorTree.Start(); firstChild.Finish(false); bool bExceptionCought = false; try { sut.StopLowerPriorityChildrenForChild(firstChild, false); } catch (Exception) { bExceptionCought = true; } Assert.AreEqual(bExceptionCought, true); }