public void CheckPlayerHand_EnsurePlayersHasCorrectNumberOfCards()
        {
            var hand1 = new Hand
            {
                new Card {
                    Rank = Rank.Two, Suit = Suit.Diamond
                }
            };

            var hand2 = new Hand
            {
                new Card {
                    Rank = Rank.Two, Suit = Suit.Spades
                },
                new Card {
                    Rank = Rank.Six, Suit = Suit.Spades
                },
                new Card {
                    Rank = Rank.Jack, Suit = Suit.Spades
                }
            };

            var player1 = new Player {
                Name = "Alice", Hand = hand1
            };
            var player2 = new Player {
                Name = "Joe", Hand = hand2
            };

            var playerList = new List <Player> {
                player1, player2
            };

            var engine = new PokerEngine(_dealer, playerList);

            engine.CheckPlayerHand();

            Assert.Multiple(() =>
            {
                playerList.ForEach(player =>
                {
                    Assert.IsTrue(player.Hand.Count == 5);
                });
            });
        }
Exemple #2
0
        public static void CompleteRound(List <Player> players)
        {
            if (players.Count != 4)
            {
                var names = new string[4] {
                    "Joe", "Jen", "Bob", "Alice"
                };
                for (int i = players.Count; i < 4; i++)
                {
                    var player = new Player {
                        Name = names[i - 1], Hand = _dealer.FillHand()
                    };

                    players.Add(player);
                }
            }

            _engine = new PokerEngine(_dealer, players);
            _engine.CheckPlayerHand();

            var winners = _engine.GetWinningPlayers();

            DisplayWinners(winners);
        }