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)); } }
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."); }