Esempio n. 1
0
        public void offer_to_double_down_on_eligible_hand_decreases_players_balance()
        {
            // Arrange
            var player = new BlackjackPlayer {Balance = 100.0};
            var bet = new AnteBet(20.0);

            var dealerFaceUpCard = Substitute.For<IBlackjackCard>();

            var hand1 = Substitute.For<IPlayerHand>();
            hand1.EligibleForDoubleDown.Returns(true);
            hand1.Bet = bet;

            // Act
            player.OfferDoubleDown(hand1, dealerFaceUpCard);

            // Assert
            player.Balance.Should().Equal(80.0);
        }
Esempio n. 2
0
        public void offer_to_double_down_on_eligible_hand_returns_true()
        {
            // Arrange
            var player = new BlackjackPlayer();
            var dealerFaceUpCard = Substitute.For<IBlackjackCard>();

            var hand1 = Substitute.For<IPlayerHand>();
            hand1.EligibleForDoubleDown.Returns(true);

            // Act
            var response = player.OfferDoubleDown(hand1, dealerFaceUpCard);

            // Assert
            response.Should().Be.True();
        }
Esempio n. 3
0
        public void offer_to_double_down_on_ineligible_hand_returns_false()
        {
            // Arrange
            var player = new BlackjackPlayer();
            var dealerFaceUpCard = Substitute.For<IBlackjackCard>();

            var hand1 = Substitute.For<IPlayerHand>();
            hand1.EligibleForDoubleDown.Returns(false);

            var playerHands = (List<IPlayerHand>)player.Hands;
            playerHands.Add(hand1);

            // Act
            var response = player.OfferDoubleDown(hand1, dealerFaceUpCard);

            // Assert
            response.Should().Be.False();
        }
Esempio n. 4
0
        public void offer_to_double_down_on_eligible_hand_doubles_amount_of_bet()
        {
            // Arrange
            var player = new BlackjackPlayer { Balance = 100.0 };
            var bet = new AnteBet(20.0);

            var dealerFaceUpCard = Substitute.For<IBlackjackCard>();

            var hand1 = Substitute.For<IPlayerHand>();
            hand1.EligibleForDoubleDown.Returns(true);
            hand1.Bet = bet;

            // Act
            player.OfferDoubleDown(hand1, dealerFaceUpCard);

            // Assert
            hand1.Bet.Amount.Should().Equal(40.0);
            hand1.Bet.Should().Be.OfType<DoubleDownBet>();
        }