public void sort_by_suit_same_rank_descending() { IDeck d = new Deck(true); Mock <ICard> card1 = new Mock <ICard>(); Mock <ICard> card2 = new Mock <ICard>(); Mock <ICard> card3 = new Mock <ICard>(); card1.Setup(c => c.rank).Returns(Rank.Seven); card2.Setup(c => c.rank).Returns(Rank.Seven); card3.Setup(c => c.rank).Returns(Rank.Seven); card1.Setup(c => c.suit).Returns(Suit.Hearts); card2.Setup(c => c.suit).Returns(Suit.Spades); card3.Setup(c => c.suit).Returns(Suit.Clubs); d.AddCardToTop(card1.Object); d.AddCardToTop(card2.Object); d.AddCardToTop(card3.Object); d.Sort(true); ICard sorted1 = d.PeekCard(0); ICard sorted2 = d.PeekCard(1); ICard sorted3 = d.PeekCard(2); Assert.AreEqual(card2.Object.GetHashCode(), sorted1.GetHashCode()); Assert.AreEqual(card1.Object.GetHashCode(), sorted2.GetHashCode()); Assert.AreEqual(card3.Object.GetHashCode(), sorted3.GetHashCode()); }