public void Test_ScoreSixes()
        {
            int expectedScore = 30;

            int[] numbers = new int[] { 6, 6, 6, 6, 6 };

            FakeNumberGen fakeNumberGen = new FakeNumberGen(numbers);
            YahtzeeDice   dice          = new YahtzeeDice(fakeNumberGen);

            dice.Roll();

            YahtzeeScorecard scores = dice.CalculateScores();

            Assert.AreEqual(expectedScore, scores.ScoreSectionUpper[YahtzeeScorecard.Upper.Sixes]);
        }
        public void Test_ScoreChance()
        {
            int expectedScore = 15;

            int[] numbers = new int[] { 1, 2, 4, 3, 5 };

            FakeNumberGen fakeNumberGen = new FakeNumberGen(numbers);
            YahtzeeDice   dice          = new YahtzeeDice(fakeNumberGen);

            dice.Roll();

            YahtzeeScorecard scores = dice.CalculateScores();

            Assert.AreEqual(expectedScore, scores.ScoreSectionLower[YahtzeeScorecard.Lower.Chance]);
        }
        public void Test_ScoreYahtzee()
        {
            int expectedScore = YahtzeeScorecard.SCORE_YAHTZEE;

            int[] numbers = new int[] { 6, 6, 6, 6, 5 };

            FakeNumberGen fakeNumberGen = new FakeNumberGen(numbers);
            YahtzeeDice   dice          = new YahtzeeDice(fakeNumberGen);

            dice.Roll();

            YahtzeeScorecard scores = dice.CalculateScores();

            Assert.AreNotEqual(expectedScore, scores.ScoreSectionLower[YahtzeeScorecard.Lower.Yahtzee]);
        }
        public void Test_ScoreLargeStraight()
        {
            int expectedScore = YahtzeeScorecard.SCORE_LARGESTRAIGHT;

            int[] numbers = new int[] { 1, 2, 4, 3, 5 };

            FakeNumberGen fakeNumberGen = new FakeNumberGen(numbers);
            YahtzeeDice   dice          = new YahtzeeDice(fakeNumberGen);

            dice.Roll();

            YahtzeeScorecard scores = dice.CalculateScores();

            Assert.AreEqual(expectedScore, scores.ScoreSectionLower[YahtzeeScorecard.Lower.LargeStraight]);
        }
        public void Test_ScoreFullHouse()
        {
            int expectedScore = YahtzeeScorecard.SCORE_FULLHOUSE;

            int[] numbers = new int[] { 2, 2, 5, 5, 5 };

            FakeNumberGen fakeNumberGen = new FakeNumberGen(numbers);
            YahtzeeDice   dice          = new YahtzeeDice(fakeNumberGen);

            dice.Roll();

            YahtzeeScorecard scores = dice.CalculateScores();

            Assert.AreEqual(expectedScore, scores.ScoreSectionLower[YahtzeeScorecard.Lower.FullHouse]);
        }
        public void Test_ScoreFourOfAKind()
        {
            int expectedScore = 21;

            int[] numbers = new int[] { 5, 5, 5, 5, 1 };

            FakeNumberGen fakeNumberGen = new FakeNumberGen(numbers);
            YahtzeeDice   dice          = new YahtzeeDice(fakeNumberGen);

            dice.Roll();

            YahtzeeScorecard scores = dice.CalculateScores();

            // Dice match both three and four of a kind
            Assert.AreEqual(expectedScore, scores.ScoreSectionLower[YahtzeeScorecard.Lower.ThreeOfAKind]);
            Assert.AreEqual(expectedScore, scores.ScoreSectionLower[YahtzeeScorecard.Lower.FourOfAKind]);
        }