public void StartRoundShouldAddToLoggerAndCallBaseMethod()
        {
            var logger = new MemoryLogger();
            var playerMock = new Mock<IPlayer>();
            var playerWithLogger = new PlayerWithLoggerDecorator(playerMock.Object, logger);

            var card = new Card(CardSuit.Diamond, CardType.King);
            var cards = new List<Card> { card };
            var trumpCard = new Card(CardSuit.Club, CardType.Ace);
            playerWithLogger.StartRound(cards, trumpCard, 1, 4);

            Assert.IsTrue(logger.ToString().Length > 0);
            Assert.IsTrue(logger.ToString().Contains(card.ToString()));
            Assert.IsTrue(logger.ToString().Contains(trumpCard.ToString()));
            playerMock.Verify(x => x.StartRound(cards, trumpCard, 1, 4), Times.Once());
        }
        public void ToStringShouldReturnValidValueWhenPlayCard()
        {
            var card = new Card(CardSuit.Club, CardType.Ace);
            var playerAction = PlayerAction.PlayCard(card);
            var toStringValue = playerAction.ToString();

            Assert.IsNotNull(toStringValue);
            Assert.IsTrue(toStringValue.Contains("PlayCard"));
            Assert.IsTrue(toStringValue.Contains(card.ToString()));
        }
Example #3
0
 public void ToStringShouldReturnDifferentValidValueForEachCardCombination()
 {
     var values = new HashSet<string>();
     foreach (CardSuit cardSuitValue in Enum.GetValues(typeof(CardSuit)))
     {
         foreach (CardType cardTypeValue in Enum.GetValues(typeof(CardType)))
         {
             var card = new Card(cardSuitValue, cardTypeValue);
             var cardToString = card.ToString();
             Assert.IsFalse(
                 values.Contains(cardToString),
                 $"Duplicate string value \"{cardToString}\" for card \"{card}\"");
             values.Add(cardToString);
         }
     }
 }