コード例 #1
0
        public void PlayersMustMoveWithinTheTopLeftBoundsOfTheBoard()
        {
            var naughts = new TurnByTurnPlayerStub();
            var game = new TicTacToeGame(naughts, null);

            naughts.Next(0, 0);

            Assert.Throws<InvalidMoveException>(() => game.PlayTurn());
        }
コード例 #2
0
        public void NaughtsStartsTheGame()
        {
            var naughts = new TurnByTurnPlayerStub();
            var game = new TicTacToeGame(naughts, null);

            naughts.Next(1, 1);
            game.PlayTurn();

            Assert.That(game.PlayerOnSquare(1, 1), Is.EqualTo(naughts));
        }
コード例 #3
0
        public void PlayersAlternateTurns()
        {
            var naughts = new TurnByTurnPlayerStub();
            var crosses = new TurnByTurnPlayerStub();
            var game = new TicTacToeGame(naughts, crosses);

            naughts.Next(1, 1);
            game.PlayTurn();

            Assert.That(game.CurrentPlayer, Is.EqualTo(crosses));
        }
コード例 #4
0
        public void PlayersTurnIsNotOverUntilTheyMakeAValidMove()
        {
            var naughts = new TurnByTurnPlayerStub();
            var crosses = new TurnByTurnPlayerStub();
            var game = new TicTacToeGame(naughts, crosses);

            naughts.Next(1, 1);
            game.PlayTurn();

            crosses.Next(1, 1);
            game.PlayTurn();

            Assert.That(game.CurrentPlayer, Is.EqualTo(crosses));
        }
コード例 #5
0
        public void OnlyOnePlayerCanClaimEachSquare()
        {
            var naughts = new TurnByTurnPlayerStub();
            var crosses = new TurnByTurnPlayerStub();
            var game = new TicTacToeGame(naughts, crosses);

            naughts.Next(1, 1);
            game.PlayTurn();

            crosses.Next(1, 1);
            game.PlayTurn();

            Assert.That(game.PlayerOnSquare(1, 1), Is.EqualTo(naughts));
        }