Esempio n. 1
0
        public void TestStateCallbacks()
        {
            List <string> CallbackNames = new List <string>
            {
                "OnExecute", "OnEnter", "OnUpdate", "OnExit"
            };

            FSM       fsm    = new FSM();
            TestState state1 = new TestState(fsm);

            state1.SetJob(new UpdateForNthTime(2));
            TestState state2     = new TestState(fsm);
            var       connection = state1.ConectTo(state2, new PassAfterNthTime(4));

            fsm.SetFirstNode(state1);
            fsm.Start();
            for (int i = 0; i < 5; i++)
            {
                fsm.Update();
            }

            Assert.AreEqual(CallbackNames[0], state1.CallbackNames[0]);
            Assert.AreEqual(CallbackNames[1], state1.CallbackNames[1]);
            Assert.AreEqual(CallbackNames[2], state1.CallbackNames[2]);
            Assert.AreEqual(CallbackNames[3], state1.CallbackNames[3]);
        }