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())); }
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); }
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); }
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); }
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); }
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); }