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)); }
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); }
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)); }
public void NewPacmanIsLookingToTheRight() { var grid = new Grid(4, 8); var game = new Game(grid); Assert.Equal(Game.Direction.Right, game.PacmanDirection); }
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)); }
public void WhenNoMovesWasDoneTheGameIsNotOver() { var board = new Mock<IBoard>(); var game = new Game(board.Object, 2); Assert.False(game.IsOver()); }