示例#1
0
        public void IsValid_ShouldReturnTrue_IfPlayerActionIsChangeTrumpAndArgumentsAreCorrect()
        {
            var playerActionValidator = new PlayerActionValidator();

            var deck = new Deck();

            var stateManager = new StateManager();
            var context      = new PlayerTurnContext(
                new MoreThanTwoCardsLeftRoundState(stateManager),
                deck.TrumpCard,
                deck.CardsLeft,
                30,
                30);

            var testPlayerHand = new List <Card>()
            {
                new Card(CardSuit.Club, CardType.Queen),
                new Card(CardSuit.Diamond, CardType.King),
                new Card(CardSuit.Club, CardType.King),
                new Card(deck.TrumpCard.Suit, CardType.Nine)
            };

            var playerActionCard = new Card(CardSuit.Club, CardType.King);

            var actualOutcome = playerActionValidator.IsValid(
                PlayerAction.ChangeTrump(),
                context,
                testPlayerHand);

            Assert.IsTrue(actualOutcome);
        }
示例#2
0
        public void IsValid_ShouldReturnFalse_IfPassedANullValue()
        {
            var playerActionValidator = new PlayerActionValidator();

            var deck = new Deck();

            var stateManager = new StateManager();
            var context      = new PlayerTurnContext(
                new StartRoundState(stateManager),
                deck.TrumpCard,
                deck.CardsLeft,
                30,
                30);

            var testPlayerHand = new List <Card>()
            {
                new Card(CardSuit.Club, CardType.Jack),
                new Card(CardSuit.Diamond, CardType.Nine)
            };

            var playerActionCard = new Card(CardSuit.Diamond, CardType.Jack);

            var actualOutcome = playerActionValidator.IsValid(
                null,
                context,
                testPlayerHand);

            Assert.IsFalse(actualOutcome);
        }
        //Implement correct test
        public void IsValid_WhenActionTypeIsPlayCard_ShouldReturnPlayCard()
        {
            var playerValidator            = new PlayerActionValidator();
            var playerAction               = PlayerAction.PlayCard(new Card(CardSuit.Club, CardType.Jack));
            var stateManager               = new StateManager();
            var trumpCard                  = new Card(CardSuit.Spade, CardType.Ace);
            var cardsLeftInDeck            = 5;
            var fPlayerRoundPoints         = 10;
            var sPlayerRoundPoints         = 15;
            ICollection <Card> playerCards = new List <Card>();
            var context = new PlayerTurnContext(stateManager.State, trumpCard, cardsLeftInDeck, fPlayerRoundPoints, sPlayerRoundPoints);

            context.FirstPlayedCard = null;

            Assert.IsTrue(playerValidator.IsValid(playerAction, context, playerCards));
        }
        public void IsValid_IfActionIsNull_ShouldReturnFalse()
        {
            //Arrange
            var               playerValidator = new PlayerActionValidator();
            PlayerAction      playerAction    = null;
            PlayerTurnContext context         = new PlayerTurnContext(new StateManager().State,
                                                                      new Card(CardSuit.Club, CardType.Jack),
                                                                      3, 10, 10);
            ICollection <Card> playerCards = new List <Card>();
            var expectedResult             = false;

            //Act
            var actualResult = playerValidator.IsValid(playerAction, context, playerCards);

            //Assert
            Assert.AreEqual(expectedResult, actualResult);
        }