예제 #1
0
        public void PlayerCanPlaceAMark()
        {
            var board = new Mock<IBoard>();
            var position = new Mock<IPosition>();
            var game = new Game(board.Object, 2);
            const int playerNumber = 0;

            board.Setup(b => b.IsEmptyAt(position.Object)).Returns(true);
            board.Setup(b => b.PlaceMark(position.Object, playerNumber));
            game.Move(position.Object);
            board.Verify(b => b.PlaceMark(position.Object, playerNumber));
        }
예제 #2
0
        public void PlayersAreSwitchingBetweenMoves(int playerCount, int movesCount, int lastPlayerIndex)
        {
            var board = new Mock<IBoard>();
            board.Setup(b => b.IsEmptyAt(It.IsAny<IPosition>())).Returns(true);

            var game = new Game(board.Object, playerCount);
            var position = new Mock<IPosition>();
            while (movesCount-- > 0)
            {
                game.Move(position.Object);
            }
            Assert.Equal(lastPlayerIndex, game.PlayerOnMove);
        }
예제 #3
0
        public void PacmanMovesAfterTick(Game.Direction direction, int nextX, int nextY)
        {
            var grid = new Grid(4, 8);
            var originPosition = new Position(0, 0);
            var positionNextToActual = new Position(nextX, nextY);

            grid.PlacePacManAt(originPosition);
            var game = new Game(grid);
            game.PacmanDirection = direction;
            game.Tick();
            Assert.Equal(Grid.PacMan, grid.At(positionNextToActual));
        }
예제 #4
0
 public void NewPacmanIsLookingToTheRight()
 {
     var grid = new Grid(4, 8);
     var game = new Game(grid);
     Assert.Equal(Game.Direction.Right, game.PacmanDirection);
 }
예제 #5
0
 public void WhenOnBoardIsFiveSameMarksInLineTheGameIsOver()
 {
     var board = new Mock<IBoard>();
     var game = new Game(board.Object, 2);
     board.Setup(b => b.CountMarksInLine(0)).Returns(5);
     Assert.True(game.IsOver());
     board.Verify(b => b.CountMarksInLine(0));
 }
예제 #6
0
 public void WhenNoMovesWasDoneTheGameIsNotOver()
 {
     var board = new Mock<IBoard>();
     var game = new Game(board.Object, 2);
     Assert.False(game.IsOver());
 }