Example #1
0
        public void TestPauseAndResume()
        {
            var obscured = new TestGameState();
            var active   = new TestGameState();

            using (var manager = new GameStateManager()) {
                manager.Push(obscured);

                Assert.AreEqual(0, obscured.OnPauseCallCount);
                manager.Push(active);
                Assert.AreEqual(1, obscured.OnPauseCallCount);

                Assert.AreEqual(0, active.OnPauseCallCount);
                manager.Pause();
                Assert.AreEqual(1, active.OnPauseCallCount);

                Assert.AreEqual(0, active.OnResumeCallCount);
                manager.Resume();
                Assert.AreEqual(1, active.OnResumeCallCount);

                Assert.AreEqual(0, obscured.OnResumeCallCount);
                manager.Pop();
                Assert.AreEqual(1, obscured.OnResumeCallCount);
            }
        }