예제 #1
0
        public static void Test_Show_Hands()
        {
            Player        player1 = new Player("Ben");
            List <Player> players = new List <Player>();
            string        msg     = "Player Ben's hand is:\nFive ♦    Six ♥    Seven ♦    Eight ♠    Ace ♥";

            var   cards1 = new List <ICard>();
            ICard c;

            // Cards for player 1
            c = new Diamond(CardValues.Five);
            cards1.Add(c);
            c = new Heart(CardValues.Six);
            cards1.Add(c);
            c = new Diamond(CardValues.Seven);
            cards1.Add(c);
            c = new Spade(CardValues.Eight);
            cards1.Add(c);
            c = new Heart(CardValues.Ace);
            cards1.Add(c);

            players.Add(player1);

            FiveCardPokerGame game = new FiveCardPokerGame(players);

            player1.Hand = cards1;
            Assert.That(game.ShowHands().Trim(), Is.EqualTo(msg.Trim()));
        }
예제 #2
0
        public static void Test_User_Without_Flush_Test()
        {
            Player player = new Player("Ben");

            List <Player> players = new List <Player>();

            var   cards = new List <ICard>();
            ICard c;

            c = new Spade(CardValues.Two);
            cards.Add(c);
            c = new Club(CardValues.Three);
            cards.Add(c);
            c = new Club(CardValues.Four);
            cards.Add(c);
            c = new Club(CardValues.Five);
            cards.Add(c);
            c = new Club(CardValues.Ace);
            cards.Add(c);

            players.Add(player);
            FiveCardPokerGame game = new FiveCardPokerGame(players);

            player.Hand = cards;

            Assert.That(game.CheckForFlush(), Is.False);
        }
        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);
        }
예제 #4
0
        public static void Test_Winners_From_High_Card_Tie()
        {
            Player        player1    = new Player("Ben");
            Player        player2    = new Player("Neb");
            List <Player> players    = new List <Player>();
            string        winningMsg = "Looks like we have a tie that round between:  Ben Neb with a High Card";

            var   cards1 = new List <ICard>();
            var   cards2 = new List <ICard>();
            ICard c;

            // Cards for player 1
            c = new Heart(CardValues.Two);
            cards1.Add(c);
            c = new Club(CardValues.Three);
            cards1.Add(c);
            c = new Club(CardValues.Four);
            cards1.Add(c);
            c = new Club(CardValues.Five);
            cards1.Add(c);
            c = new Club(CardValues.Ace);
            cards1.Add(c);

            // Cards for player 2
            c = new Spade(CardValues.Two);
            cards2.Add(c);
            c = new Diamond(CardValues.Three);
            cards2.Add(c);
            c = new Spade(CardValues.Four);
            cards2.Add(c);
            c = new Spade(CardValues.Five);
            cards2.Add(c);
            c = new Spade(CardValues.Ace);
            cards2.Add(c);

            players.Add(player1);
            players.Add(player2);

            FiveCardPokerGame game = new FiveCardPokerGame(players);

            player1.Hand = cards1;
            player2.Hand = cards2;

            Assert.That(game.GetRoundWinner(), Is.EqualTo(winningMsg));
            Assert.That(game.TiedPlayers.Contains(player1) &&
                        game.TiedPlayers.Contains(player2) &&
                        game.TiedPlayers.Count == 2, Is.True);
        }
        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);
        }
예제 #7
0
        public static void Test_Multiple_Users_With_Flush_And_Same_Values_Test()
        {
            Player        player1 = new Player("Ben");
            Player        player2 = new Player("Neb");
            List <Player> players = new List <Player>();

            var   cards1 = new List <ICard>();
            var   cards2 = new List <ICard>();
            ICard c;

            // Cards for player 1
            c = new Club(CardValues.Two);
            cards1.Add(c);
            c = new Club(CardValues.Three);
            cards1.Add(c);
            c = new Club(CardValues.Four);
            cards1.Add(c);
            c = new Club(CardValues.Five);
            cards1.Add(c);
            c = new Club(CardValues.Ace);
            cards1.Add(c);

            // Cards for player 2
            c = new Heart(CardValues.Two);
            cards2.Add(c);
            c = new Heart(CardValues.Three);
            cards2.Add(c);
            c = new Heart(CardValues.Four);
            cards2.Add(c);
            c = new Heart(CardValues.Five);
            cards2.Add(c);
            c = new Heart(CardValues.Ace);
            cards2.Add(c);

            players.Add(player1);
            players.Add(player2);
            FiveCardPokerGame game = new FiveCardPokerGame(players);

            player1.Hand = cards1;
            player2.Hand = cards2;


            Assert.That(game.CheckForFlush(), Is.True);
            Assert.That(game.TiedPlayers.Contains(player1) &&
                        game.TiedPlayers.Contains(player2) &&
                        game.TiedPlayers.Count == 2, Is.True);
        }
예제 #8
0
        public static void Test_Winner_From_Pair_With_High_Card()
        {
            Player        player1    = new Player("Ben");
            Player        player2    = new Player("Neb");
            List <Player> players    = new List <Player>();
            string        winningMsg = "Congratulations! The winner this round is: Neb with One Pair and High Card";

            var   cards1 = new List <ICard>();
            var   cards2 = new List <ICard>();
            ICard c;

            // Cards for player 1
            c = new Heart(CardValues.Two);
            cards1.Add(c);
            c = new Club(CardValues.Two);
            cards1.Add(c);
            c = new Club(CardValues.Four);
            cards1.Add(c);
            c = new Club(CardValues.Five);
            cards1.Add(c);
            c = new Club(CardValues.Ace);
            cards1.Add(c);

            // Cards for player 2
            c = new Spade(CardValues.Two);
            cards2.Add(c);
            c = new Diamond(CardValues.Two);
            cards2.Add(c);
            c = new Spade(CardValues.King);
            cards2.Add(c);
            c = new Heart(CardValues.Five);
            cards2.Add(c);
            c = new Heart(CardValues.Ace);
            cards2.Add(c);

            players.Add(player1);
            players.Add(player2);

            FiveCardPokerGame game = new FiveCardPokerGame(players);

            player1.Hand = cards1;
            player2.Hand = cards2;

            Assert.That(game.GetRoundWinner(), Is.EqualTo(winningMsg));
            Assert.That(game.Winner, Is.EqualTo(player2));
        }
        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);
        }
예제 #10
0
        public static void Test_Multiple_Users_With_One_Winner_Flush_Test()
        {
            Player        player1 = new Player("Ben");
            Player        player2 = new Player("Neb");
            List <Player> players = new List <Player>();

            var   cards1 = new List <ICard>();
            var   cards2 = new List <ICard>();
            ICard c;

            // Cards for player 1
            c = new Club(CardValues.Two);
            cards1.Add(c);
            c = new Club(CardValues.Three);
            cards1.Add(c);
            c = new Club(CardValues.Four);
            cards1.Add(c);
            c = new Club(CardValues.Five);
            cards1.Add(c);
            c = new Club(CardValues.Ace);
            cards1.Add(c);

            // Cards for player 2
            c = new Heart(CardValues.Six);
            cards2.Add(c);
            c = new Heart(CardValues.Three);
            cards2.Add(c);
            c = new Heart(CardValues.Four);
            cards2.Add(c);
            c = new Heart(CardValues.Five);
            cards2.Add(c);
            c = new Heart(CardValues.Ace);
            cards2.Add(c);

            players.Add(player1);
            players.Add(player2);

            FiveCardPokerGame game = new FiveCardPokerGame(players);

            player1.Hand = cards1;
            player2.Hand = cards2;
            game.GetRoundWinner();

            Assert.That(game.Winner, Is.EqualTo(player2));
        }
        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);
        }