Esempio n. 1
0
        public void TestStates()
        {
            StateManager manager = new StateManager(new TestState(0));
            manager.push(new TestState(1));
            Assert.AreEqual(((TestState)manager.pop()).value, 1);
            Assert.AreEqual(((TestState)manager.top).value, 0);
            manager.push(new TestState(1));
            manager.push(new TestState(2));
            manager.push(new TestState(3));
            manager.push(new TestState(4));
            manager.push(new TestState(5));
            manager.push(new TestState(6));
            manager.push(new TestState(7));

            Assert.AreEqual(manager.update(StateManager.UpdateType.BeforeInput), false);
            Assert.IsTrue(Enumerable.SequenceEqual(TestState.stateUpdateOrder, new List<int>() { 7, 6, 5, 4 }));
            TestState.stateUpdateOrder = new List<int>();

            Assert.AreEqual(manager.update(StateManager.UpdateType.AfterInput), true);
            Assert.IsTrue(Enumerable.SequenceEqual(TestState.stateUpdateOrder, new List<int>() { 7, 6, 5, 4, 3, 2 }));
            TestState.stateUpdateOrder = new List<int>();

            Assert.AreEqual(manager.update(StateManager.UpdateType.AfterFrame), true);
            Assert.IsTrue(Enumerable.SequenceEqual(TestState.stateUpdateOrder, new List<int>() { 7, 6, 5, 4, 3, 2, 1, 0 }));
            TestState.stateUpdateOrder = new List<int>();

            manager.draw();
            Assert.IsTrue(Enumerable.SequenceEqual(TestState.stateDrawOrder, new List<int>() { 0, 1, 2, 3, 4, 5, 6 }));
            TestState.stateDrawOrder = new List<int>();

            manager.pop();
            manager.pop();
            manager.pop();
            manager.draw();
            Assert.IsTrue(Enumerable.SequenceEqual(TestState.stateDrawOrder, new List<int>() { 0, 1, 2, 3, 4 }));
            TestState.stateDrawOrder = new List<int>();
        }
Esempio n. 2
0
 public void setStateManager(StateManager m)
 {
     sm = m;
 }