public static ICommand GeneratePlayerAndEnemiesCommand() { var methodGameStateChanger = new MethodGameStateChanger(); return(new SerializableCommand <MethodGameStateChanger> (methodGameStateChanger, changer => changer.SetPlayersAndEnemies(TestGameState.Instance, 1, 2))); }
public void TestOperateOnStateThroughMethod() { var methodGameStateChanger = new MethodGameStateChanger(); var setPlayersAndEnemies = TestHelper.GeneratePlayerAndEnemiesCommand(); setPlayersAndEnemies.Execute(); Assert.AreEqual(1, TestGameState.Instance.numberOfPlayers); Assert.AreEqual(2, TestGameState.Instance.numberOfEnemies); }
public void TestSerialization() { var listOfCommands = new List <ICommand>(); var methodGameStateChanger = new MethodGameStateChanger(); var setPlayersAndEnemies = TestHelper.GeneratePlayerAndEnemiesCommand(); listOfCommands.Add(setPlayersAndEnemies); var gameStateChanger = new GameStateChanger(); var increaseNumberOfEnemies = new SerializableCommand <GameStateChanger> (gameStateChanger, changer => changer.IncreaseNumberOfEnemies()); listOfCommands.Add(increaseNumberOfEnemies); byte[] bytes = new byte[0]; using (var memoryStream = new MemoryStream()) { new BinaryFormatter().Serialize(memoryStream, listOfCommands); bytes = memoryStream.ToArray(); } var newListOfCommands = new List <ICommand>(); using (var memoryStream = new MemoryStream(bytes, 0, bytes.Length)) { memoryStream.Write(bytes, 0, bytes.Length); memoryStream.Position = 0; var data = new BinaryFormatter().Deserialize(memoryStream); newListOfCommands = data as List <ICommand>; } foreach (var command in newListOfCommands) { command.Execute(); } Assert.AreEqual(1, TestGameState.Instance.numberOfPlayers); Assert.AreEqual(3, TestGameState.Instance.numberOfEnemies); }
public void TestList() { var listOfCommands = new List <ICommand>(); var methodGameStateChanger = new MethodGameStateChanger(); var setPlayersAndEnemies = TestHelper.GeneratePlayerAndEnemiesCommand(); listOfCommands.Add(setPlayersAndEnemies); var gameStateChanger = new GameStateChanger(); var increaseNumberOfEnemies = new SerializableCommand <GameStateChanger> (gameStateChanger, changer => changer.IncreaseNumberOfEnemies()); listOfCommands.Add(increaseNumberOfEnemies); foreach (var command in listOfCommands) { command.Execute(); } Assert.AreEqual(1, TestGameState.Instance.numberOfPlayers); Assert.AreEqual(3, TestGameState.Instance.numberOfEnemies); }