public void DeckOfCards_Should_Shuffle() { //arrange int cardCount = 52; int suitCount = 4; var deck = new BlackJackDeck(); var initialOrder = deck.Cards.ToList(); //act deck.ShuffleCards(); //assert deck.Cards.SequenceEqual(initialOrder).ShouldBeEquivalentTo(false); deck.Cards.Count.ShouldBeEquivalentTo(cardCount); var grouped = deck.Cards.GroupBy(x => x.Suit).OrderBy(x => x.Key).ToDictionary(x => x.Key); grouped.Keys.ElementAt(0).ShouldBeEquivalentTo(Suit.Clubs); grouped.Keys.ElementAt(1).ShouldBeEquivalentTo(Suit.Diamonds); grouped.Keys.ElementAt(2).ShouldBeEquivalentTo(Suit.Hearts); grouped.Keys.ElementAt(3).ShouldBeEquivalentTo(Suit.Spades); foreach (var item in grouped) { var values = grouped[item.Key].Select(x => x.Rank).ToList(); values.Count.Should().Be(cardCount / suitCount); foreach (Rank rank in Enum.GetValues(typeof(Rank))) { values.Contains(rank).ShouldBeEquivalentTo(true); } } deck.Cards.All(x => x.GameType == GameType.BlackJack).ShouldBeEquivalentTo(true); }
public void TestBlackjackDeckEmpty() { //arrange var deck = new BlackJackDeck(); var expectedCount = 0; //act deck.Empty(); var actualCount = deck.Cards.Count(); //assert Assert.AreEqual(expectedCount, actualCount); }
public void TestBlackjackDeckShuffle() { //arrange var deck = new BlackJackDeck(); var pickedCardFromDeck = deck.Cards[6]; //act deck.Shuffle(); var pickedCardFromShuffledDeck = deck.Cards[6]; //assert /// Assert.AreNotSame(pickedCardFromDeck , pickedCardFromShuffledDeck); }
public void DeckOfCards_Should_Get_Random_Card() { //arrange int cardCount = 52; var deck = new BlackJackDeck(); //act var card = deck.GetRandomCard(); //assert deck.Cards.Count.ShouldBeEquivalentTo(cardCount - 1); deck.Cards.Contains(card).ShouldBeEquivalentTo(false); deck.Cards.All(x => x.GameType == GameType.BlackJack).ShouldBeEquivalentTo(true); }
private void SetupPlayers() { _deck = new BlackJackDeck(5); _deck.Shuffle(); _playerHand = new BlackJackHand(); _dealerHand = new BlackJackHand(); pbDealer.Image = null; pbPlayer.Image = null; btnDeal.Visible = true; btnDouble.Visible = false; btnPass.Visible = false; btnExtraCard.Visible = false; nudBet.Value = _betValue; }
public void TestBlackjackDeckDeal() { //arrange var deck = new BlackJackDeck(); var expectedCard = deck.Cards.Last(); var expectedNumberOfCards = deck.Cards.Count() - 1; //act var actualCard = deck.Deal(); var actualNumberOfCards = deck.Cards.Count(); //assert Assert.AreEqual(expectedCard, actualCard); Assert.AreEqual(expectedNumberOfCards, actualNumberOfCards); }
public void TestDeckConstructorWithListPassedIn() { //arrange var cardToAdd = new Mock <ICard>(MockBehavior.Strict); var expectedCard = cardToAdd.Object; //act var deck = new BlackJackDeck(new List <ICard> { expectedCard }); var actualCard = deck.Cards.Last(); //assert Assert.AreEqual(expectedCard, actualCard); }
public void TestBasicDeckConstructor() { //arrange //A new deck should have 52 cards var expectedCardsNum = 52; var wrongNumberOfCards = 50; //act var deck = new BlackJackDeck(); var deck2 = new BlackJackDeck(); var actualCardsNum = deck.Cards.Count(); var deck2ActualCardsNum = deck2.Cards.Count(); //assert Assert.AreEqual(expectedCardsNum, actualCardsNum); Assert.AreNotEqual(wrongNumberOfCards, deck2ActualCardsNum); }
public void DeckOfCards_Should_Get_Random_Card_Throw_If_Empty() { //arrange int cardCount = 52; var deck = new BlackJackDeck(); for (int i = 0; i < cardCount; i++) { deck.GetRandomCard(); } //act Action act = () => deck.GetRandomCard(); //assert act.ShouldThrow <InvalidOperationException>(); }
public void DeckOfCards_Should_Check_Hand_Overflow() { //arrange int cardCount = 52; var deck = new BlackJackDeck(); var hand = new BlackJackHand(deck); //act for (int i = 0; i < cardCount; i++) { hand.TakeCard(); } //assert deck.Cards.Count.ShouldBeEquivalentTo(0); hand.Points.ShouldBeEquivalentTo(340); hand.IsOverFlow.ShouldBeEquivalentTo(true); }
public BlackJackHand(BlackJackDeck deck) : base(GameType.BlackJack) { Deck = deck; }