Пример #1
0
        public void DeckIsNotEmptyAfterUnevenlyDistributedDeal()
        {
            // Arrange
            ICardTransport transport = new SnapCardTransport();
            ICardDealer    dealer    = new SnapCardDealer(transport);

            var player1 = new SnapPlayer("Player 1", new SnapHand());
            var player2 = new SnapPlayer("Player 2", new SnapHand());
            var players = new List <SnapPlayer> {
                player1, player2,
            };

            ICardOrderingProvider cardOrderingProvider = new SuitMajorSortedCardOrderingProvider();
            var deck = new SnapCardDeck(cardOrderingProvider);

            deck.Add(new SnapCard(Suit.Clubs, Rank.Ace));
            deck.Add(new SnapCard(Suit.Clubs, Rank.Nine));
            deck.Add(new SnapCard(Suit.Spades, Rank.Seven));

            // Act
            dealer.Deal(deck, players);

            // Assert
            Assert.IsFalse(deck.IsEmpty);
        }
Пример #2
0
        public void DealerDealsCorrectCards()
        {
            // Arrange
            ICardTransport transport = new SnapCardTransport();
            ICardDealer    dealer    = new SnapCardDealer(transport);

            var player1 = new SnapPlayer("Player 1", new SnapHand());
            var player2 = new SnapPlayer("Player 2", new SnapHand());
            var players = new List <SnapPlayer> {
                player1, player2,
            };

            ICardOrderingProvider cardOrderingProvider = new SuitMajorSortedCardOrderingProvider();
            var deck = new SnapCardDeck(cardOrderingProvider);

            deck.Add(new SnapCard(Suit.Clubs, Rank.Ace));
            deck.Add(new SnapCard(Suit.Clubs, Rank.Nine));

            // Act
            dealer.Deal(deck, players);

            // Assert
            Assert.IsTrue(player1.Hand.Peek().Suit == Suit.Clubs && player1.Hand.Peek().Rank == Rank.Ace);
            Assert.IsTrue(player2.Hand.Peek().Suit == Suit.Clubs && player2.Hand.Peek().Rank == Rank.Nine);
        }
Пример #3
0
        public async Task PlayerCheckForMatchAsyncFailsWhenCentralPileIsEmpty()
        {
            // Arrange
            var hand        = new SnapHand();
            var player      = new SnapPlayer("Player 1", hand);
            var centralPile = new SnapCentralPile();

            // Act
            var test = await player.CheckForMatchAsync(centralPile);

            // Assert
            Assert.IsFalse(test);
        }
Пример #4
0
        public async Task PlayerCheckForMatchAsyncFailsWhenNotPresent()
        {
            // Arrange
            var hand        = new SnapHand();
            var player      = new SnapPlayer("Player 1", hand);
            var centralPile = new SnapCentralPile();

            centralPile.Add(new SnapCard(Suit.Hearts, Rank.Queen));
            centralPile.Add(new SnapCard(Suit.Clubs, Rank.King));

            // Act
            var test = await player.CheckForMatchAsync(centralPile);

            // Assert
            Assert.IsFalse(test);
        }