public void TestDrawPropagation() { GameStateManager manager = new GameStateManager(new GameServiceContainer()); TestGameState gameState = new TestGameState(manager); manager.Switch(gameState); manager.Draw(new GameTime()); Assert.AreEqual(1, gameState.DrawCallCount); }
public void TestPushModality(GameStateModality modality) { var alwaysObscured = new TestGameState(); var potentiallyObscured = new TestGameState(); var active = new TestGameState(); using (var manager = new GameStateManager()) { manager.Push(alwaysObscured); manager.Push(potentiallyObscured); manager.Push(active, modality); Assert.AreEqual(0, alwaysObscured.UpdateCallCount); Assert.AreEqual(0, alwaysObscured.DrawCallCount); Assert.AreEqual(0, potentiallyObscured.UpdateCallCount); Assert.AreEqual(0, potentiallyObscured.DrawCallCount); Assert.AreEqual(0, active.UpdateCallCount); Assert.AreEqual(0, active.DrawCallCount); manager.Update(new GameTime()); manager.Draw(new GameTime()); Assert.AreEqual(0, alwaysObscured.UpdateCallCount); Assert.AreEqual(0, alwaysObscured.DrawCallCount); if (modality == GameStateModality.Exclusive) { Assert.AreEqual(0, potentiallyObscured.UpdateCallCount); Assert.AreEqual(0, potentiallyObscured.DrawCallCount); } else { Assert.AreEqual(1, potentiallyObscured.UpdateCallCount); Assert.AreEqual(1, potentiallyObscured.DrawCallCount); } Assert.AreEqual(1, active.UpdateCallCount); Assert.AreEqual(1, active.DrawCallCount); } }