public void ShouldPrintSampleScoreboardMessage_TopCommandTest() { Player firstPlayer = new Player(); firstPlayer.Name = "Pesho"; firstPlayer.TotalMoves = 4; GameEngine testEngine = new GameEngine(firstPlayer); List<Player> topPlayersScores = new List<Player>(); Player secondPlayer=new Player(); secondPlayer.Name = "Spiro"; secondPlayer.TotalMoves = 6; topPlayersScores.Add(firstPlayer); topPlayersScores.Add(secondPlayer); ICommand topCommand = new TopCommand(topPlayersScores); using (var writer = new StringWriter()) { Console.SetOut(writer); testEngine.CommandManager.Proceed(topCommand); writer.Flush(); string result = writer.GetStringBuilder().ToString(); string expected = "\nScoreboard:\r\nPesho by 4\r\nSpiro by 6\r\n\r\n"; Assert.AreEqual(expected, result); } }
public void ShouldReturnTrue_IsGameOver_ExitCommandTest() { Player testPlayer =new Player(); GameEngine testEngine = new GameEngine(testPlayer); ICommand exitCommand = new ExitCommand(testEngine); testEngine.CommandManager.Proceed(exitCommand); Assert.IsTrue(testEngine.IsGameOver); }
public void ShouldReturnTrue_RestartCommandTest_ChangeCountTotalMoves() { Player testPlayer = new Player(); GameEngine testEngine = new GameEngine(testPlayer); testEngine.Player.TotalMoves = 2; ICommand restartCommand = new RestartCommand(testEngine); testEngine.CommandManager.Proceed(restartCommand); Assert.IsTrue(testEngine.Player.TotalMoves == 0); }
public void PrintTheGameFieldTest() { GameEngine gameEngine = new GameEngine(new Player()); using (var writer = new StringWriter()) { Console.SetOut(writer); ConsolePrinter.PrintTheGameField(gameEngine.PuzzleField); writer.Flush(); string result = writer.GetStringBuilder().ToString(); string expected = " -------------\r\n| 1 2 3 4 |\r\n| 5 6 7 8 |\r\n| 9 10 11 12 |\r\n| 13 14 15 |\r\n -------------\r\n"; Assert.AreEqual(expected, result); } }
public void ShouldPrintEmptyScoreboardMessage_TopCommandTest() { Player testPlayer = new Player(); GameEngine testEngine = new GameEngine(testPlayer); List<Player> topPlayersScores = new List<Player>(); ICommand topCommand = new TopCommand(topPlayersScores); using (var writer = new StringWriter()) { Console.SetOut(writer); testEngine.CommandManager.Proceed(topCommand); writer.Flush(); string result = writer.GetStringBuilder().ToString(); string expected = "\nScoreboard:\r\nEmpty Scoreboard! :)\r\n\r\n"; Assert.AreEqual(expected, result); } }
public void ShouldPrintFinalMessage_ExitCommandTest() { Player testPlayer = new Player(); GameEngine testEngine = new GameEngine(testPlayer); ICommand exitCommand = new ExitCommand(testEngine); using (var writer = new StringWriter()) { Console.SetOut(writer); testEngine.CommandManager.Proceed(exitCommand); writer.Flush(); string result = writer.GetStringBuilder().ToString(); string expected = "Good bye!\r\n"; Assert.AreEqual(expected, result); } }
public void ShouldReturnTrue_CheckIsIncreaseTotalMovesOfPlayer() { Player testPlayer = new Player(); GameEngine testEngine = new GameEngine(testPlayer); var oldIn = Console.In; Console.SetIn(new StringReader("5\r\nexit")); string result = String.Empty; using (var writer = new StringWriter()) { Console.SetOut(writer); testEngine.StartTheGame(); writer.Flush(); result = writer.GetStringBuilder().ToString(); } Console.SetIn(oldIn); int expectedPlayerMoves = 1; string expectedMessage = "Illegal move!\r\nEnter a number to move: Good bye!\r\n"; string resultString = result.Substring(result.Length - 50); Assert.IsTrue(expectedPlayerMoves == testPlayer.TotalMoves || expectedMessage == resultString); }
/// <summary> /// This method get the instance of current engine. /// </summary> /// <param name="engine">Currently initialised engine.</param> public ExitCommand(GameEngine engine) { this.GameEngine = engine; }
/// <summary> /// This method call StartTheGame() method of GameEngine class. /// </summary> public static void Main() { Player currentPlayer = new Player(); GameEngine gameEngine = new GameEngine(currentPlayer); gameEngine.StartTheGame(); }
public void ShouldReturnTrue_DefineCommandsMethodTest() { Player testPlayer = new Player(); GameEngine testEngine = new GameEngine(testPlayer); List<Player> testTopPlayers = new List<Player>(); }