public void CanGetHighCard()
        {
            var hand = new Hand();

            hand.Draw(new Card(CardValue.Seven, CardSuit.Spades));
            hand.Draw(new Card(CardValue.Ten, CardSuit.Clubs));
            hand.Draw(new Card(CardValue.Five, CardSuit.Hearts));
            hand.Draw(new Card(CardValue.King, CardSuit.Hearts));
            hand.Draw(new Card(CardValue.Two, CardSuit.Hearts));
            FiveCardPokerScorer.HighCard(hand.Cards).Value.Should().Be(CardValue.King);
        }
        public void CanScoreFourOfAKind()
        {
            var hand = new Hand();

            hand.Draw(new Card(CardValue.Ten, CardSuit.Clubs));
            hand.Draw(new Card(CardValue.Jack, CardSuit.Spades));
            hand.Draw(new Card(CardValue.Ten, CardSuit.Spades));
            hand.Draw(new Card(CardValue.Ten, CardSuit.Hearts));
            hand.Draw(new Card(CardValue.Ten, CardSuit.Spades));
            FiveCardPokerScorer.GetHandRank(hand.Cards).Should().Be(HandRank.FourOfAKind);
        }
        public void CanScoreRoyalFlush()
        {
            var hand = new Hand();

            hand.Draw(new Card(CardValue.Ten, CardSuit.Spades));
            hand.Draw(new Card(CardValue.Jack, CardSuit.Spades));
            hand.Draw(new Card(CardValue.Queen, CardSuit.Spades));
            hand.Draw(new Card(CardValue.King, CardSuit.Spades));
            hand.Draw(new Card(CardValue.Ace, CardSuit.Spades));
            FiveCardPokerScorer.GetHandRank(hand.Cards).Should().Be(HandRank.RoyalFlush);
        }
        public void CanScoreFlush()
        {
            var hand = new Hand();

            hand.Draw(new Card(CardValue.Two, CardSuit.Spades));
            hand.Draw(new Card(CardValue.Three, CardSuit.Spades));
            hand.Draw(new Card(CardValue.Ace, CardSuit.Spades));
            hand.Draw(new Card(CardValue.Five, CardSuit.Spades));
            hand.Draw(new Card(CardValue.Six, CardSuit.Spades));
            FiveCardPokerScorer.GetHandRank(hand.Cards).Should().Be(HandRank.Flush);
        }
        public void CanScoreTwoPair()
        {
            var hand = new Hand();

            hand.Draw(new Card(CardValue.Ace, CardSuit.Clubs));
            hand.Draw(new Card(CardValue.Ten, CardSuit.Spades));
            hand.Draw(new Card(CardValue.Nine, CardSuit.Spades));
            hand.Draw(new Card(CardValue.Ten, CardSuit.Hearts));
            hand.Draw(new Card(CardValue.Ace, CardSuit.Spades));

            FiveCardPokerScorer.GetHandRank(hand.Cards).Should().Be(HandRank.TwoPair);
        }
        public void CanScoreStraightUnordered()
        {
            var hand = new Hand();

            hand.Draw(new Card(CardValue.Ace, CardSuit.Spades));
            hand.Draw(new Card(CardValue.Queen, CardSuit.Clubs));
            hand.Draw(new Card(CardValue.Jack, CardSuit.Spades));
            hand.Draw(new Card(CardValue.Ten, CardSuit.Spades));
            hand.Draw(new Card(CardValue.King, CardSuit.Hearts));

            FiveCardPokerScorer.GetHandRank(hand.Cards).Should().Be(HandRank.Straight);
        }
        public void CanScoreHighCard()
        {
            Hand hand = new Hand();

            hand.Draw(new Card(CardValue.Seven, CardSuit.Spades));
            hand.Draw(new Card(CardValue.Ten, CardSuit.Clubs));
            hand.Draw(new Card(CardValue.Five, CardSuit.Hearts));
            hand.Draw(new Card(CardValue.King, CardSuit.Hearts));
            hand.Draw(new Card(CardValue.Two, CardSuit.Hearts));

            FiveCardPokerScorer.GetHandRank(hand.Cards).Should().Be(HandRank.HighCard);
        }
        public void CanScoreStraightFlush()
        {
            Hand hand = new Hand();

            hand.Draw(new Card(CardValue.Nine, CardSuit.Spades));
            hand.Draw(new Card(CardValue.Queen, CardSuit.Spades));
            hand.Draw(new Card(CardValue.Jack, CardSuit.Spades));
            hand.Draw(new Card(CardValue.Ten, CardSuit.Spades));
            hand.Draw(new Card(CardValue.King, CardSuit.Spades));

            FiveCardPokerScorer.GetHandRank(hand.Cards).Should().Be(HandRank.StraightFlush);
        }