예제 #1
0
        public void WhenTableReinitialised_PlayersHandStill2Each()
        {
            _table.InitialiseHands();
            _table.InitialiseHands();
            var cardsVisitor = new CardTestVisitor();

            _table.Accept(cardsVisitor);
            Assert.AreEqual(8, cardsVisitor.Count);
        }
예제 #2
0
        public void Add()
        {
            var discardPile = new CardTestVisitor();

            _discard.Accept(discardPile);

            Assert.AreEqual(1, discardPile.Count);
            Assert.AreEqual(1, discardPile.UniqueCount);
        }
예제 #3
0
        public void Reset()
        {
            _discard.Reset();

            var discardPile = new CardTestVisitor();

            _discard.Accept(discardPile);

            Assert.AreEqual(0, discardPile.Count);
            Assert.AreEqual(0, discardPile.UniqueCount);
        }
예제 #4
0
        public void DealCard_ShouldShuffleDiscardPile_IfNoCardsLeftInDeck()
        {
            DealAllCardsInDeck();

            var deckVisitor = new CardTestVisitor();

            _dealer.Accept(deckVisitor);
            Assert.AreEqual(0, deckVisitor.Count);

            _dealer.DealCard();
            _dealer.Accept(deckVisitor);
            Assert.AreEqual(51, deckVisitor.Count);
            Assert.AreEqual(51, deckVisitor.UniqueCount);
        }
예제 #5
0
        public void CreateHand_ShouldReturnHandWithZeroCards()
        {
            var playerOneHand = _dealer.CreateHand();
            var playerTwoHand = _dealer.CreateHand();

            var playerOneVisitor = new CardTestVisitor();
            var playerTwoVisitor = new CardTestVisitor();

            playerOneHand.Accept(playerOneVisitor);
            playerTwoHand.Accept(playerTwoVisitor);

            Assert.AreEqual(0, playerOneVisitor.Count);
            Assert.AreEqual(0, playerTwoVisitor.Count);
        }
예제 #6
0
        public void ShuffleShould_RandomiseCardOrder()
        {
            _deck.Accept(_visitor);
            var cardCountBeforeShuffle = _visitor.Count;
            var cardsBeforeShuffle     = _visitor.Cards;

            _deck.Shuffle();
            var afterShuffleVisitor = new CardTestVisitor();

            _deck.Accept(afterShuffleVisitor);
            var cardCountAfterShuffle = afterShuffleVisitor.Count;
            var cardsAfterShuffle     = afterShuffleVisitor.Cards;

            Assert.AreEqual(52, cardCountBeforeShuffle);
            Assert.AreEqual(52, cardCountAfterShuffle);
            Assert.AreEqual(cardCountBeforeShuffle, afterShuffleVisitor.UniqueCount);
            Assert.AreNotEqual(cardsBeforeShuffle, cardsAfterShuffle);
        }
예제 #7
0
        public void DealCard_ShouldDealDifferentCardToPlayer()
        {
            var playerOneHand = _dealer.CreateHand();
            var playerTwoHand = _dealer.CreateHand();

            playerOneHand.Add(_dealer.DealCard());
            playerOneHand.Add(_dealer.DealCard());
            playerTwoHand.Add(_dealer.DealCard());
            playerTwoHand.Add(_dealer.DealCard());

            var playerOneVisitor = new CardTestVisitor();
            var playerTwoVisitor = new CardTestVisitor();

            playerOneHand.Accept(playerOneVisitor);
            playerTwoHand.Accept(playerTwoVisitor);

            Assert.AreEqual(2, playerOneVisitor.Count);
            Assert.AreEqual(2, playerTwoVisitor.Count);
            Assert.AreNotEqual(playerOneVisitor.Cards, playerTwoVisitor.Cards);
        }
예제 #8
0
 public void DeckShouldBeInitialised()
 {
     _deck    = new Deck();
     _visitor = new CardTestVisitor();
 }