public void GetOutOfJailFree()
        {
            player.JailStrategy = new AlwaysPay();
            var money = banker.Money[player];

            jailHandler.Imprison(player);
            jailHandler.HandleJail(0, player);

            Assert.IsFalse(getOutOfJailCard.Held);
        }
예제 #2
0
        public void RollThreeDoubles_GoToJail()
        {
            jailHandler.HandleJail(3, player);

            Assert.AreEqual(BoardConstants.JAIL_OR_JUST_VISITING, boardHandler.PositionOf[player]);
            Assert.IsTrue(jailHandler.HasImprisoned(player));
        }
예제 #3
0
        public void NeverPay()
        {
            player.JailStrategy = new NeverPay();

            Assert.IsFalse(player.JailStrategy.UseCard());

            var playerMoney = banker.Money[player];

            dice.RollTwoDice();
            boardHandler.MoveTo(player, BoardConstants.GO_TO_JAIL);
            jailHandler.HandleJail(0, player);
            jailHandler.HandleJail(0, player);

            Assert.AreEqual(playerMoney, banker.Money[player]);
            Assert.IsTrue(jailHandler.HasImprisoned(player));
        }
예제 #4
0
        private void RollAndMove(IPlayer player)
        {
            dice.RollTwoDice();
            if (dice.Doubles)
            {
                doublesCount++;
            }

            jailHandler.HandleJail(doublesCount, player);

            if (!jailHandler.HasImprisoned(player) && !banker.IsBankrupt(player))
            {
                boardHandler.Move(player, dice.Value);
            }
        }