Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }