예제 #1
0
        public void WhenThereAreNotFiveCards_ThrowNotEnoughCardsException()
        {
            var cardHandler        = new CardHandler(_mockedRuleChecker);
            var cardsToBeProcessed = new List <Card>
            {
                new Card(Suit.Heart, Value.Ace)
            };

            Assert.Throws <NotEnoughCardsException>(() => cardHandler.ProcessCards(cardsToBeProcessed));
        }
예제 #2
0
        public void WhenFiveValidCardsAreProcessed_ApplicableRuleIsReturned()
        {
            var cardHandler        = new CardHandler(_mockedRuleChecker);
            var cardsToBeProcessed = new List <Card>
            {
                new Card(Suit.Heart, Value.Ace),
                new Card(Suit.Heart, Value.Ace),
                new Card(Suit.Heart, Value.Ace),
                new Card(Suit.Heart, Value.Ace),
                new Card(Suit.Heart, Value.Ace)
            };

            _mockedRuleChecker.CheckMetRules(cardsToBeProcessed).Returns(CardRules.HighCard);

            var rule = cardHandler.ProcessCards(cardsToBeProcessed);

            _mockedRuleChecker.Received(1).CheckMetRules(cardsToBeProcessed);
            rule.ShouldBe(CardRules.HighCard);
        }