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())); }
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); } } }