示例#1
0
        public void ticking_with_no_child_node_throws_exception()
        {
            Init();

            Assert.Throws <ApplicationException>(
                () => testObject.Tick(new MyTimeData())
                );
        }
        public void RunningChildReturnsRunning()
        {
            var child  = new ReturnXNode(NodeStatus.RUNNING);
            var node   = new InverterNode(child);
            var status = node.Tick();

            Assert.That(status, Is.EqualTo(NodeStatus.RUNNING));
        }
        public void inverts_failure_of_child_node()
        {
            Init();

            var time = new MyTimeData();

            var mockChildNode = new Mock<IMyBehaviourTreeNode>();
            mockChildNode
                .Setup(m => m.Tick(time))
                .Returns(MyBehaviourTreeStatus.Failure);

            testObject.AddChild(mockChildNode.Object);

            Assert.Equal(MyBehaviourTreeStatus.Success, testObject.Tick(time));

            mockChildNode.Verify(m => m.Tick(time), Times.Once());
        }
        public void FailureChildReturnsSuccess()
        {
            var child        = new AlwaysFailureNode();
            var inverterNode = new InverterNode(child);

            var status = inverterNode.Tick();

            Assert.That(status, Is.EqualTo(NodeStatus.SUCCESS));
        }
        public void SuccessChildReturnsFailure()
        {
            var child        = new AlwaysSuccessNode();
            var inverterNode = new InverterNode(child);

            var status = inverterNode.Tick();

            Assert.That(status, Is.EqualTo(NodeStatus.FAILURE));
        }
示例#6
0
        public void Tick_ChildFailure_ReturnsSuccess()
        {
            var blackboard   = this.GetBlackboard();
            var childStub    = new Mock <ActionNode <TestBlackboard> >();
            var inverterNode = new InverterNode <TestBlackboard>(childStub.Object);

            childStub.Setup(x => x.Tick(blackboard)).Returns(NodeStatus.Failure);

            Assert.AreEqual(NodeStatus.Success, inverterNode.Tick(blackboard));
        }