public void DoNotMoveCurrentPlayerIfInPenaltyBoxAndRollEvenDice() { var player1 = new Player(1, "player1", true); var player2 = new Player(2, "player2"); var game = GetGame(player1, player2); var gameRepository = new InMemoryGameRepository(game); var fakeDice = new FakeDice(2); var gameServices = new GameServices(gameRepository, null, fakeDice); var question = gameServices.Move(game.Id, player1.Id); Check.That(question).IsNull(); Check.That(game.CurrentPlayer).IsEqualTo(player2); }
public void MoveCurrentPlayer() { var player1 = new Player("player1"); var player2 = new Player("player2"); Game game = GetGame(player1, player2); var gameRepository = new InMemoryGameRepository(game); var fakeDice = new FakeDice(2); var gameServices = new GameServices(gameRepository, null, fakeDice); var question = gameServices.Move(game.Id, player1.Id); var gameQuestion = game.Categories.Single(x => x.Id == question.CategoryId).Questions.First(); Check.That(question.Text).IsEqualTo(gameQuestion.Question.Text); Check.That(gameQuestion.NotUsed).IsFalse(); Check.That(game.CurrentPlayer.IsInPenaltyBox).IsFalse(); Check.That(game.CurrentPlayer.LastQuestion).IsEqualTo(question); Check.That(game.CurrentPlayer.Place).IsEqualTo(2); }