Пример #1
0
        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));
        }
Пример #2
0
        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);
        }