Ejemplo n.º 1
0
        public void DeckBuilderTestDeckShouldBeCreated()
        {
            // ARRANGE

            // ACT
            List <Card> i = _deckBuilder.CreateDeck();

            //Assert
            Assert.IsTrue(i.Count > 0);
        }
Ejemplo n.º 2
0
        public void Creates52CardDeck()
        {
            var expectedCount = 52;

            var deckBuilder = new DeckBuilder();
            var deck        = deckBuilder.CreateDeck();
            var actualCount = deck.Count();

            Assert.AreEqual(expectedCount, actualCount);
        }
Ejemplo n.º 3
0
        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));
            });
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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());
            }
        }
Ejemplo n.º 6
0
        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();
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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));
        }