public void When_Ticked_then_Task_Logs_Tick_with_Debugger()
        {
            var modelSequence = new ModelSequence(null,
                new ModelOfAction<MyAction>(null),
                new ModelOfAction<MyAction>(null));
            var executor = BTExecutorFactory.CreateBTExecutor(modelSequence);

            executor.Tick();
            executor.Tick();
            mockDebugger.Verify(m => m.LogTick(It.IsAny<MyAction>()), Times.Exactly(1));
        }
        public void When_running_then_one_tickable()
        {
            var modelSequence = new ModelSequence(null,
                new ModelOfAction<MyAction>(null),
                new ModelOfAction<MyAction>(null));
            var executor = BTExecutorFactory.CreateBTExecutor(modelSequence);

            executor.Tick();
            executor.Tick();

            Assert.AreEqual(1, executor.TickableTasks.Count);
        }
        public void When_failed_then_return()
        {
            var myfailingAction = new ModelOfAction<MyAction>(null);

            var modelSequence = new ModelSequence(null,
                myfailingAction,
                new ModelOfAction<MyAction>(null));
            var executor = BTExecutorFactory.CreateBTExecutor(modelSequence);

            executor.Tick();
            myfailingAction.Action.ReturnStatusForInternalTick = Status.Failure;
            executor.Tick();
            executor.Tick();

            Assert.AreEqual(Status.Failure, executor.GetStatus());
        }
 /**
  * Creates an ExecutionSequence that is able to run a ModelSequence task and
  * that is managed by a BTExecutor.
  *
  * @param modelTask
  *            the ModelSequence that this ExecutionSequence is going to run.
  * @param executor
  *            the BTExecutor in charge of running this ExecutionSequence.
  * @param parent
  *            the parent ExecutionTask of this task.
  */
 public ExecutionSequence(ModelSequence modelTask, BTExecutor executor, ExecutionTask parent)
     : base(modelTask, executor, parent)
 {
 }