public void Discard_SetsTurnHand() { // Arrange const int deckCardIndex = 0; const int deckCardId = 1; IDrawableCardState turnDeck = new CardState(deckCardIndex, deckCardId); IList <IDiscardedCardState> roundDiscard = null; IDiscardableCardState handCard = new CardState(1, 2); IDiscardableCardState discardCard = new CardState(deckCardIndex, deckCardId); var expected = new[] { handCard }; IList <IDiscardableCardState> turnHand = new List <IDiscardableCardState>(new[] { handCard, discardCard }); IDiscardablePlayerState discardablePlayerState = new PlayerState(Guid.Empty, roundDiscard, turnHand); IDiscardableTurnState turn = new TurnState(turnDeck, discardablePlayer: discardablePlayerState); IDiscardedCardState discardedCard = new CardState(deckCardIndex, deckCardId); _cardStateFactory .Setup(csf => csf.Discard(discardCard)) .Returns(discardedCard); // Act TurnService service = this.CreateService(); service.Discard(turn, discardCard); var actual = turn.DiscardablePlayer.TurnHand; // Assert Assert.IsTrue(expected.SequenceEqual(actual)); }
public void Discard_SetsTargetPlayer() { // Arrange const int deckCardIndex = 0; const int deckCardId = 1; IDrawableCardState turnDeck = new CardState(deckCardIndex, deckCardId); IList <IDiscardedCardState> roundDiscard = null; IDiscardableCardState handCard = new CardState(1, 2); IDiscardableCardState discardCard = new CardState(deckCardIndex, deckCardId); IList <IDiscardableCardState> turnHand = new List <IDiscardableCardState>(new[] { handCard, discardCard }); IDiscardablePlayerState discardablePlayerState = new PlayerState(Guid.Empty, roundDiscard, turnHand); IDiscardableTurnState turn = new TurnState(turnDeck, discardablePlayer: discardablePlayerState); IList <IDiscardableCardState> targetHand = null; IList <IDiscardedCardState> targetDiscard = null; ITargetablePlayerState targetPlayer = new PlayerState(Guid.Parse("076d24f5-c5a1-48b8-be65-7afdd3f64130"), targetDiscard, targetHand); var expected = targetPlayer; IDiscardedCardState discardedCard = new CardState(deckCardIndex, deckCardId); _cardStateFactory .Setup(csf => csf.Discard(discardCard)) .Returns(discardedCard); // Act TurnService service = this.CreateService(); service.Discard(turn, discardCard, targetPlayer); var actual = turn.TargetPlayer; // Assert Assert.AreEqual(expected, actual); }