コード例 #1
0
        public void GameRunner_RunGame_RunsToCompletion(bool playAgain)
        {
            IConsoleInputRetriever inputRetriever = new TestConsoleInputRetriever("test", playAgain);
            IPlayer playerOne = new EasyComputerPlayer();
            IPlayer playerTwo = new EasyComputerPlayer();

            GameRunner gameRunner = new GameRunner(inputRetriever, playerOne, playerTwo);
            var        actual     = gameRunner.RunGame();

            Assert.Equal(playAgain, actual);
        }
コード例 #2
0
        public void GameRunner_HandlePlayerTurn_NoWinDetected_ReturnsFalse()
        {
            IConsoleInputRetriever inputRetriever = new TestConsoleInputRetriever("5", true);
            IPlayer playerOne = new HumanPlayer(inputRetriever);
            IPlayer playerTwo = new EasyComputerPlayer();

            var board = new Board();

            GameRunner gameRunner = new GameRunner(inputRetriever, playerOne, playerTwo);
            var        actual     = gameRunner.HandlePlayerTurn(board.Squares, playerOne);

            Assert.False(actual);
        }
コード例 #3
0
        public void GameRunner_HandlePlayerTurn_WinDetected_ReturnsTrue(int firstColumn, int firstRow, int secondColumn, int secondRow)
        {
            IConsoleInputRetriever inputRetriever = new TestConsoleInputRetriever("5", true);
            IPlayer playerOne = new HumanPlayer(inputRetriever);
            IPlayer playerTwo = new EasyComputerPlayer();

            var board = new Board();

            board.Squares[firstColumn, firstRow].State   = SquareState.X;
            board.Squares[secondColumn, secondRow].State = SquareState.X;

            GameRunner gameRunner = new GameRunner(inputRetriever, playerOne, playerTwo);
            var        actual     = gameRunner.HandlePlayerTurn(board.Squares, playerOne);

            Assert.True(actual);
        }
コード例 #4
0
        public void EasyComputerPlayer_PlayerInput_ReturnsBoard_OneDisplayCharacterMatchesComputerPlayerSymbol()
        {
            var board  = new Board();
            var player = new EasyComputerPlayer();

            var actual = player.PlayerInput(board.Squares);

            var actualSquareSymbols = new List <string>();

            foreach (var square in actual)
            {
                actualSquareSymbols.Add(square.DisplayCharacter);
            }

            Assert.Equal(9, actualSquareSymbols.Count);
            Assert.Contains("O", actualSquareSymbols);
            Assert.Single(actualSquareSymbols.Where(x => x.Equals("O")));
        }
コード例 #5
0
        public void EasyComputerPlayer_PlayerInput_ReturnsBoard_OneSquareStateMatchesComputerPlayerState()
        {
            var board  = new Board();
            var player = new EasyComputerPlayer();

            var actual = player.PlayerInput(board.Squares);

            var actualSquareStates = new List <SquareState>();

            foreach (var square in actual)
            {
                actualSquareStates.Add(square.State);
            }

            Assert.Equal(9, actualSquareStates.Count);
            Assert.Contains(SquareState.O, actualSquareStates);
            Assert.Single(actualSquareStates.Where(x => x.Equals(SquareState.O)));
        }