public static void Test_Player_New_Hand_Not_Same_As_Last()
        {
            Player            player = new Player("Ben");
            FiveCardPokerGame game   = new FiveCardPokerGame(new List <Player> {
                player
            });

            game.BeginRound();

            List <ICard> hand1 = new List <ICard>();

            hand1.AddRange(player.Hand);
            game.BeginRound();
            List <ICard> hand2 = player.Hand;

            Assert.AreNotEqual(hand1, hand2);
        }
        public static void Test_That_Deal_Hand_Creates_New_Deck_and_Doesnt_add_To_Old_Deck()
        {
            Player        player       = new Player("Player1");
            List <Player> players      = new List <Player>();
            int           deckOneCount = 0;
            int           deckTwoCount = 0;

            players.Add(player);

            FiveCardPokerGame game = new FiveCardPokerGame(players);

            game.BeginRound();
            deckOneCount = game.Deck.CompleteDeck.Count;
            game.BeginRound();
            deckTwoCount = game.Deck.CompleteDeck.Count;

            Assert.AreEqual(deckOneCount, deckTwoCount);
        }
        public static void Test_Deck_Removes_Cards_Once_Dealt_To_Players()
        {
            Player        player  = new Player("Player1");
            List <Player> players = new List <Player>();

            players.Add(player);

            FiveCardPokerGame game = new FiveCardPokerGame(players);

            game.BeginRound();
            Assert.AreEqual(47, game.Deck.CompleteDeck.Count);
        }
        public static void Test_Deck_Removed_Correct_Cards_Once_Dealt_To_Players()
        {
            Player        player  = new Player("Player1");
            List <Player> players = new List <Player>();

            players.Add(player);

            FiveCardPokerGame game = new FiveCardPokerGame(players);

            game.BeginRound();

            foreach (var playerCard in player.Hand)
            {
                Assert.IsFalse(game.Deck.CompleteDeck.Contains(playerCard));
            }
        }
        public static void Test_Player_Hand_Has_5_Unique_Cards()
        {
            Player        player  = new Player("Ben");
            List <Player> players = new List <Player> {
                player
            };
            FiveCardPokerGame game = new FiveCardPokerGame(players);

            game.BeginRound();

            // Get Unique Cards
            List <ICard> cards = player.Hand.Select(x => x).Distinct().ToList();

            Assert.AreEqual(5, player.Hand.Count);
            Assert.AreEqual(5, cards.Count);
        }