Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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));
        }