コード例 #1
0
        public void DoNotMoveCurrentPlayerIfInPenaltyBoxAndRollEvenDice()
        {
            var player1 = new Player {
                Name = "player1", IsInPenaltyBox = true
            };
            var player2 = new Player {
                Name = "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);
        }
コード例 #2
0
        public void MoveCurrentPlayer()
        {
            var player1 = new Player {
                Name = "player1"
            };
            var player2 = new Player {
                Name = "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);
        }