public void BlackjackIdentifyWinnerTransactionTest_BasicDeck() { // arrange List <Player> players = new List <Player>(); Player alex = new Player { Name = "Alex" }; Player bill = new Player { Name = "Bill" }; Player charlie = new Player { Name = "Charlie" }; players.Add(alex); players.Add(bill); players.Add(charlie); Shuffle shuffle = new Shuffle(bill); shuffle.Execute(); BlackjackDeal blackjackDeal = new BlackjackDeal(players, bill); Random rand = new Random(DateTime.Now.Millisecond); int upperBound = rand.Next(2, 6); // deal anywhere from 2 to 5 cards to each player for (int i = 1; i <= upperBound; i++) { blackjackDeal.Execute(); } IdentifyWinnerBlackjack identWinner = new IdentifyWinnerBlackjack(players); // act identWinner.Execute(); // assert // verify that the winner(s) has/have the highest score Assert.AreEqual(players.Where(p => p.HandStatus == HandStatus.Winner).Select(p => p.Hand.Score).Max(), players.Select(p => p.Hand.Score).Max()); }
public void BlackjackIdentifyWinnerTransactionTest_BasicDeck() { // arrange List<Player> players = new List<Player>(); Player alex = new Player { Name = "Alex" }; Player bill = new Player { Name = "Bill" }; Player charlie = new Player { Name = "Charlie" }; players.Add(alex); players.Add(bill); players.Add(charlie); Shuffle shuffle = new Shuffle(bill); shuffle.Execute(); BlackjackDeal blackjackDeal = new BlackjackDeal(players, bill); Random rand = new Random(DateTime.Now.Millisecond); int upperBound = rand.Next(2,6); // deal anywhere from 2 to 5 cards to each player for (int i = 1; i <= upperBound; i++) { blackjackDeal.Execute(); } IdentifyWinnerBlackjack identWinner = new IdentifyWinnerBlackjack(players); // act identWinner.Execute(); // assert // verify that the winner(s) has/have the highest score Assert.AreEqual(players.Where(p => p.HandStatus == HandStatus.Winner).Select(p => p.Hand.Score).Max(), players.Select(p => p.Hand.Score).Max()); }
public void ScoreHandTest_Blackjack_Aces_BasicDeck() { // arrange IdentifyWinnerBlackjack identWinnerBlackjack = new IdentifyWinnerBlackjack(null); Player player = new Player(); long expectedScore = 0; player.Hand.AddCard(new Card() { Name = CardName.Ace, Suit = CardSuit.Clubs}); expectedScore = 11; // act identWinnerBlackjack.ScoreHand(player.Hand); // assert Assert.AreEqual(expectedScore, player.Hand.Score); // arrange player.Hand.AddCard(new Card() { Name = CardName.Ace, Suit = CardSuit.Diamonds }); expectedScore = 12; // value the Ace as 1, not 11, or we would bust // act identWinnerBlackjack.ScoreHand(player.Hand); // assert Assert.AreEqual(expectedScore, player.Hand.Score); // arrange player.Hand.AddCard(new Card() { Name = CardName.Two, Suit = CardSuit.Diamonds }); expectedScore = 14; // act identWinnerBlackjack.ScoreHand(player.Hand); // assert Assert.AreEqual(expectedScore, player.Hand.Score); // arrange player.Hand.AddCard(new Card() { Name = CardName.King, Suit = CardSuit.Diamonds }); expectedScore = 14; // both Aces should now be valued as 1 to avoid a bust // act identWinnerBlackjack.ScoreHand(player.Hand); // assert Assert.AreEqual(expectedScore, player.Hand.Score); // arrange player.Hand.AddCard(new Card() { Name = CardName.Nine, Suit = CardSuit.Diamonds }); expectedScore = -1; // even with both Aces valued as 1, we will still bust // act identWinnerBlackjack.ScoreHand(player.Hand); // assert Assert.AreEqual(expectedScore, player.Hand.Score); }
public void ScoreHandTest_Blackjack_Aces_BasicDeck() { // arrange IdentifyWinnerBlackjack identWinnerBlackjack = new IdentifyWinnerBlackjack(null); Player player = new Player(); long expectedScore = 0; player.Hand.AddCard(new Card() { Name = CardName.Ace, Suit = CardSuit.Clubs }); expectedScore = 11; // act identWinnerBlackjack.ScoreHand(player.Hand); // assert Assert.AreEqual(expectedScore, player.Hand.Score); // arrange player.Hand.AddCard(new Card() { Name = CardName.Ace, Suit = CardSuit.Diamonds }); expectedScore = 12; // value the Ace as 1, not 11, or we would bust // act identWinnerBlackjack.ScoreHand(player.Hand); // assert Assert.AreEqual(expectedScore, player.Hand.Score); // arrange player.Hand.AddCard(new Card() { Name = CardName.Two, Suit = CardSuit.Diamonds }); expectedScore = 14; // act identWinnerBlackjack.ScoreHand(player.Hand); // assert Assert.AreEqual(expectedScore, player.Hand.Score); // arrange player.Hand.AddCard(new Card() { Name = CardName.King, Suit = CardSuit.Diamonds }); expectedScore = 14; // both Aces should now be valued as 1 to avoid a bust // act identWinnerBlackjack.ScoreHand(player.Hand); // assert Assert.AreEqual(expectedScore, player.Hand.Score); // arrange player.Hand.AddCard(new Card() { Name = CardName.Nine, Suit = CardSuit.Diamonds }); expectedScore = -1; // even with both Aces valued as 1, we will still bust // act identWinnerBlackjack.ScoreHand(player.Hand); // assert Assert.AreEqual(expectedScore, player.Hand.Score); }