public void DeckBuilderTestDeckShouldBeCreated() { // ARRANGE // ACT List <Card> i = _deckBuilder.CreateDeck(); //Assert Assert.IsTrue(i.Count > 0); }
public void Creates52CardDeck() { var expectedCount = 52; var deckBuilder = new DeckBuilder(); var deck = deckBuilder.CreateDeck(); var actualCount = deck.Count(); Assert.AreEqual(expectedCount, actualCount); }
public void BuildWithSuit_Should_ReturnAllCardsOfGivenSuit() { var suits = (Enum.GetValues(typeof(Suits)) as Suits[]).ToList(); var ranks = (Enum.GetValues(typeof(Ranks)) as Ranks[]).ToList(); suits.ForEach(suit => { var cards = DeckBuilder.CreateDeck().WithSuit(suit).Build(); Assert.Equal(ranks.Count, cards.Count()); ranks.ForEach(rank => Assert.Contains(cards, card => card.Rank == rank && card.Suit == suit)); }); }
public void ImDealt26Cards() { var expectedCount = 26; var deckBuilder = new DeckBuilder(); var deck = deckBuilder.CreateDeck(); var myCards = new List <Card>(); var playerCards = new List <Card>(); deckBuilder.DealDeckRandomly(ref deck, ref myCards, ref playerCards); var actualCount = myCards.Count(); Assert.AreEqual(expectedCount, actualCount); }
public void DistributeCards_Should_AssignProperDecksNumberForCards() { var cards = DeckBuilder .CreateDeck() .WithColor(Colors.Black) .WithColor(Colors.Red) .Shuffled() .Build() .Take(28) .ToList() .DistributeCards(7); for (var i = 0; i < 7; ++i) { Assert.Equal(i + 1, cards.Where(card => card.DeckNumber == i + 2).Count()); } }
static void Main(string[] args) { var action = new Actions(); var PlayerName = action.GetPlayerName(); Message.ExplainTheRules(PlayerName); var deckBuilder = new DeckBuilder(); var deck = deckBuilder.CreateDeck(); var myCards = new List <Card>(); var playerCards = new List <Card>(); deckBuilder.DealDeckRandomly(ref deck, ref myCards, ref playerCards); Message.DeckIsShuffled(PlayerName); var roundResult = new RoundResult(); var roundCounter = 0; while ((myCards.Count > 0) && (playerCards.Count > 0)) { roundCounter += 1; Message.DisplayTopCards(myCards[0].ToString(), playerCards[0].ToString()); roundResult = action.FlipTopCardsOver(PlayerName, ref myCards, ref playerCards, ref deck); if ((roundResult == RoundResult.RyanWins) || (roundResult == RoundResult.PlayerWins)) { action.GiveWinnerTheirCards(roundResult, ref myCards, ref playerCards, ref deck); } while (roundResult == RoundResult.WarIsDeclard) { var warResult = action.GetWarResult(PlayerName, myCards, playerCards); if ((warResult == WarResult.RyanWins) || (warResult == WarResult.PlayerWins) || (warResult == WarResult.WarIsDeclaredAgain)) { action.FalloutFromWar(ref myCards, ref playerCards, ref deck, warResult, ref roundResult); } else { action.SomeoneLacksFourCards(ref myCards, ref playerCards, ref deck, warResult, ref roundResult); } } Message.CardCount(myCards.Count, playerCards.Count, roundCounter); } action.GameIsOver(PlayerName, roundCounter, myCards, playerCards); Console.ReadLine(); }
public void BuildWithoutShuffle_Should_ReturnCardsNotShuffled() { var cards = DeckBuilder .CreateDeck() .WithSuit(Suits.Clubs) .Build() .ToList(); var ranks = (Enum.GetValues(typeof(Ranks)) as Ranks[]).ToList(); var shuffled = false; for (var i = 0; i < ranks.Count; ++i) { if (cards[i].Rank != ranks[i]) { shuffled = true; } } Assert.False(shuffled); }
public void BuildWithColor_Should_ReturnAllCards_When_GivenRedAndBlackColors() { var blackCards = DeckBuilder .CreateDeck() .WithColor(Colors.Black) .Build(); var redCards = DeckBuilder .CreateDeck() .WithColor(Colors.Red) .Build(); var ranks = (Enum.GetValues(typeof(Ranks)) as Ranks[]).ToList(); Assert.Equal(ranks.Count * 2, blackCards.Count()); Assert.Equal(ranks.Count * 2, redCards.Count()); ranks.ForEach(rank => Assert.Contains(blackCards, card => card.Rank == rank && card.Suit == Suits.Clubs)); ranks.ForEach(rank => Assert.Contains(blackCards, card => card.Rank == rank && card.Suit == Suits.Spades)); ranks.ForEach(rank => Assert.Contains(redCards, card => card.Rank == rank && card.Suit == Suits.Hearts)); ranks.ForEach(rank => Assert.Contains(redCards, card => card.Rank == rank && card.Suit == Suits.Diamonds)); }