public void settle_bet_with_equal_hands_returns_zero() { // Arrange IBlackjackBet bet = new AnteBet(100); IBlackjackPlayer player = new BlackjackPlayer { Balance = 900 }; var dealerHand = Substitute.For<IDealerHand>(); var playerHand = Substitute.For<IPlayerHand>(); playerHand.Busted.Returns(false); dealerHand.Busted.Returns(false); playerHand.Value().Returns(20); dealerHand.Value().Returns(20); playerHand.Bet.Returns(bet); // Act var amount = player.SettleBet(playerHand, dealerHand); // Assert amount.Should().Equal(0.0); }
public void settle_bet_when_only_dealer_busted_returns_negative_win_amount() { // Arrange IBlackjackPlayer player = new BlackjackPlayer(); IBlackjackBet bet = new AnteBet(100); var dealerHand = Substitute.For<IDealerHand>(); var playerHand = Substitute.For<IPlayerHand>(); playerHand.Busted.Returns(false); dealerHand.Busted.Returns(true); playerHand.Bet.Returns(bet); // Act var amount = player.SettleBet(playerHand, dealerHand); // Assert amount.Should().Equal(-100.0); }
public void settle_bet_with_equal_hands_changes_bet_to_push_bet() { // Arrange IBlackjackBet bet = new AnteBet(100); IBlackjackPlayer player = new BlackjackPlayer { Balance = 900 }; var dealerHand = Substitute.For<IDealerHand>(); var playerHand = Substitute.For<IPlayerHand>(); playerHand.Busted.Returns(false); dealerHand.Busted.Returns(false); playerHand.Value().Returns(20); dealerHand.Value().Returns(20); playerHand.Bet.Returns(bet); // Act player.SettleBet(playerHand, dealerHand); // Assert playerHand.Bet.Should().Be.OfType<PushBet>(); }
public void settle_bet_when_only_dealer_busted_credits_players_balance() { // Arrange IBlackjackBet bet = new AnteBet(100); IBlackjackPlayer player = new BlackjackPlayer {Balance = 900}; var dealerHand = Substitute.For<IDealerHand>(); var playerHand = Substitute.For<IPlayerHand>(); playerHand.Busted.Returns(false); dealerHand.Busted.Returns(true); playerHand.Bet.Returns(bet); // Act player.SettleBet(playerHand, dealerHand); // Assert player.Balance.Should().Equal(1100.0); }