Beispiel #1
0
        public void ShouldThrowOnDrawCardIfDeckIsNull()
        {
            var cds = new CardDrawingService();

            var ex = Assert.Throws <ArgumentNullException>(() => cds.DrawCard(null));

            Assert.That(ex.ParamName, Is.EqualTo("deck"));
        }
Beispiel #2
0
        public void ShouldThrowOnConstructorIfCardScoringServiceNull()
        {
            var cds = new CardDrawingService();
            var css = default(CardScoringService);
            var ex  = Assert.Throws <ArgumentNullException>(() => new GamePlayingService(cds, css));

            Assert.That(ex.ParamName, Is.EqualTo("scoringService"));
        }
Beispiel #3
0
        public void ShouldThrowOnDrawCardFromDeckIfNoCardsLeft()
        {
            var cds  = new CardDrawingService();
            var deck = new List <Card>(0);

            var ex = Assert.Throws <InvalidOperationException>(() => cds.DrawCard(deck));

            Assert.That(ex.Message, Contains.Substring("Cannot draw card."));
        }
Beispiel #4
0
        public void ShouldThrowOnDrawHandFromDeckIfNotEnoughCardsLeft()
        {
            var cds  = new CardDrawingService();
            var deck = new List <Card>(1)
            {
                new Card(Kinds.Ace, Suits.Diamonds)
            };

            var ex = Assert.Throws <InvalidOperationException>(() => cds.DrawHand(deck, 2));

            Assert.That(ex.Message, Contains.Substring("Cannot draw hand."));
        }
Beispiel #5
0
        public void ShouldDrawCardFromDeckIfCardsLeft()
        {
            var cds  = new CardDrawingService();
            var deck = cds.DrawDeck();

            const int cardsInFullDeck = 52;

            for (var index = 0; index < cardsInFullDeck; index++)
            {
                var card      = cds.DrawCard(deck);
                var cardsLeft = cardsInFullDeck - (index + 1);
                Assert.That(deck.Count, Is.EqualTo(cardsLeft));
            }
        }
Beispiel #6
0
        public void ShouldDrawDeckWithAllKindsAndSuits()
        {
            var cds  = new CardDrawingService();
            var deck = cds.DrawDeck();

            Assert.That(deck.Count, Is.EqualTo(52));

            var kinds = (Enum.GetValues(typeof(Kinds)) as Kinds[])
                        .Where(kind => kind != Kinds.Any).ToArray();
            var suits = (Enum.GetValues(typeof(Suits)) as Suits[])
                        .Where(suit => suit != Suits.Any).ToArray();

            foreach (var kind in kinds)
            {
                foreach (var suit in suits)
                {
                    var card = deck.Single(c => c.Kind == (int)kind && c.Suit == (int)suit);
                }
            }
            Assert.Pass("Cards of every kind and suit found in deck.");
        }