public void TestCloneDeck() { //completeDeck DeckOfCards deck = new DeckOfCards(); DeckOfCards clonedDeck = deck.CloneDeck(); //Check that the cloneDeck is a different reference to private field DeckOfCards.cardDeck PrivateObject pObj = new PrivateObject(deck); List <Card> useToCheckCloneMakesADifferentReference = (List <Card>)pObj.GetField("cardDeck"); Assert.IsFalse(Object.ReferenceEquals(useToCheckCloneMakesADifferentReference, clonedDeck)); //Check values of cards in the clonedDeck are the same as in the DeckOfCards.cardDeck IEnumerable <Tuple <Card, Card> > tupledEnumerator = MultipleIterate.Over(clonedDeck.GetCardEnumerator(), deck.GetCardEnumerator()); foreach (var decksTuple in tupledEnumerator) { Assert.AreEqual(decksTuple.Item1, decksTuple.Item2); Assert.IsFalse(Object.ReferenceEquals(decksTuple.Item1, decksTuple.Item2)); } }
public void TestSetDeck() { DeckOfCards deck = new DeckOfCards(); List <Card> cards = new List <Card>(); Card[] threeCards = { new Card(Suit.Spades, FaceValue.Two), new Card(Suit.Spades, FaceValue.Three), new Card(Suit.Spades, FaceValue.Four) }; cards.Add(new Card(Suit.Spades, FaceValue.Two)); cards.Add(new Card(Suit.Spades, FaceValue.Three)); cards.Add(new Card(Suit.Spades, FaceValue.Four)); deck.SetDeck(cards); IEnumerable <Tuple <Card, Card> > deckAndTestCardListMultpleEnumerator = MultipleIterate.Over(deck.GetCardEnumerator(), threeCards); foreach (var decksTuple in deckAndTestCardListMultpleEnumerator) { Assert.AreEqual(decksTuple.Item1, decksTuple.Item2); } }