public void DealTest_BasicDeck() { // arrange Deck deck = DeckFactory.CreateBasicDeck(); Player player = new Player(); // arrange/act Assert.AreEqual(deck.Size, 52); ICard card = deck.GetNextCard(); Assert.IsInstanceOfType(card, typeof(Card)); player.Hand.AddCard(card); Assert.AreEqual(player.Hand.Size, 1); Assert.AreEqual(deck.Size, 51); card = deck.GetNextCard(); Assert.IsInstanceOfType(card, typeof(Card)); player.Hand.AddCard(card); Assert.AreEqual(player.Hand.Size, 2); Assert.AreEqual(deck.Size, 50); card = deck.GetNextCard(); Assert.IsInstanceOfType(card, typeof(Card)); player.Hand.AddCard(card); Assert.AreEqual(player.Hand.Size, 3); Assert.AreEqual(deck.Size, 49); }
private bool IsDeckShuffled(Deck deck) { // a quick and dirty check for randomization; this will fail on average once every couple thousand // times through pure chance, even if the cards have been shuffled correctly bool isShuffled = true; ICard card1 = deck.GetNextCard(); ICard card2 = deck.GetNextCard(); Deck unshuffledDeck = DeckFactory.CreateBasicDeck(); try { Assert.IsFalse(card1.Name == unshuffledDeck.Cards[0].Name && card1.Suit == unshuffledDeck.Cards[0].Suit); } catch (AssertFailedException) { try { Assert.IsFalse(card2.Name == unshuffledDeck.Cards[1].Name && card2.Suit == unshuffledDeck.Cards[1].Suit); } catch (AssertFailedException) { isShuffled = false; } } return(isShuffled); }
public void ShuffleTest_BasicDeck() { // arrange var deck = DeckFactory.CreateBasicDeck(); // act deck.Shuffle(); // assert CollectionAssert.AllItemsAreNotNull(deck.Cards); CollectionAssert.AllItemsAreUnique(deck.Cards); Assert.AreEqual(deck.Cards.Count, deck.Size); Assert.IsTrue(IsDeckShuffled(deck)); }