public void Roll_D100()
        {
            //Arrange
            var manager = new DiceRollManager();

            CheckRoll(manager, DieType.D100, 100);
        }
        public void Roll_D8()
        {
            //Arrange
            var manager = new DiceRollManager();

            CheckRoll(manager, DieType.D8, 8);
        }
        private static void CheckRoll(DiceRollManager manager, DieType die, ushort upperBound)
        {
            //Act
            var rolls = manager.RollDie(die, 1000);

            //Assert
            rolls.ForEach(roll => roll.RollValue.Should().BeInRange(0, upperBound));
        }
Example #4
0
        static void Main(string[] args)
        {
            var diceRollManager = new DiceRollManager(new DieNumberGenerator());
            var diceSet         = diceRollManager.RollAll();

            while (Console.ReadLine() != "stop")
            {
                Console.WriteLine($"Current dice: { string.Join(' ', diceSet.Values.Select(v => v.ToString())) }");
                Console.WriteLine("Enter the value of dice to keep: ");
                var diceToKeep = Console.ReadLine().Split(' ').ToList().Select(s => int.Parse(s));
                diceSet = diceRollManager.RollAllButKeep(diceToKeep);
            }
        }
        public void RollDice_Returns_Rolls(string dieTypeStr, uint numberOfRolls, ushort upperBound)
        {
            //Arrange
            var manager = new DiceRollManager();
            var results = new List <DiceRolls>();

            for (int i = 0; i < 1000; i++)
            {
                var input = new Dictionary <string, uint>
                {
                    { dieTypeStr, numberOfRolls }
                };

                //Act
                var result = manager.RollDice(input);
                results.Add(result);
            }

            //Assert
            var values = results.SelectMany(x => x.DiceRollResults.Values).SelectMany(x => x).ToList();

            values.ForEach(x => x.RollValue.Should().BeInRange(1, upperBound));
        }