Ejemplo n.º 1
0
        public void ReturnRollValue()
        {
            partialRoll = new RandomPartialRoll(1, mockRandom.Object);
            mockRandom.Setup(r => r.Next(6)).Returns(42);

            var roll = partialRoll.d6();
            Assert.That(roll, Is.EqualTo(43));
        }
Ejemplo n.º 2
0
        public void RollQuantity()
        {
            partialRoll = new RandomPartialRoll(2, mockRandom.Object);
            mockRandom.SetupSequence(r => r.Next(6)).Returns(4).Returns(2);

            var roll = partialRoll.d6();
            Assert.That(roll, Is.EqualTo(8));
        }
Ejemplo n.º 3
0
        public void AfterOtherRoll_AlwaysReturnZero()
        {
            partialRoll = new RandomPartialRoll(1, mockRandom.Object);
            mockRandom.Setup(r => r.Next(6)).Returns(42);

            partialRoll.d(21);
            var roll = partialRoll.d6();
            Assert.That(roll, Is.EqualTo(0));
        }
Ejemplo n.º 4
0
        public void ReturnRollValues()
        {
            partialRoll = new RandomPartialRoll(1, mockRandom.Object);
            mockRandom.Setup(r => r.Next(9266)).Returns(42);

            var rolls = partialRoll.IndividualRolls(9266);
            Assert.That(rolls, Contains.Item(43));
            Assert.That(rolls.Count(), Is.EqualTo(1));
        }
Ejemplo n.º 5
0
        public void IfProductOfQuantityAndDieGreaterThanLimit_ThrowArgumentException()
        {
            var rootOfLimit = Convert.ToInt32(Math.Floor(Math.Sqrt(Limits.ProductOfQuantityAndDie)));
            partialRoll = new RandomPartialRoll(rootOfLimit + 2, mockRandom.Object);
            Assert.That(() => partialRoll.IndividualRolls(rootOfLimit), Throws.InstanceOf<ArgumentException>().With.Message.EqualTo("Die roll of 46342d46340 is too large for RollGen"));

            partialRoll = new RandomPartialRoll(rootOfLimit, mockRandom.Object);
            Assert.That(() => partialRoll.IndividualRolls(rootOfLimit + 2), Throws.InstanceOf<ArgumentException>().With.Message.EqualTo("Die roll of 46340d46342 is too large for RollGen"));
        }
Ejemplo n.º 6
0
        public void RollQuantity()
        {
            partialRoll = new RandomPartialRoll(2, mockRandom.Object);
            mockRandom.SetupSequence(r => r.Next(7)).Returns(4).Returns(2);

            var rolls = partialRoll.IndividualRolls(7);
            Assert.That(rolls, Contains.Item(5));
            Assert.That(rolls, Contains.Item(3));
            Assert.That(rolls.Count(), Is.EqualTo(2));
        }
Ejemplo n.º 7
0
        public void CanIterateOverRollsMultipleTimes()
        {
            var count = 0;
            mockRandom.Setup(r => r.Next(9266)).Returns(() => count++);
            partialRoll = new RandomPartialRoll(42, mockRandom.Object);

            var rolls = partialRoll.IndividualRolls(9266).OrderBy(x => x).ToList();
            Assert.That(rolls.Count, Is.EqualTo(42));

            for (var i = 0; i < 42; i++)
            {
                Assert.That(rolls[i], Is.EqualTo(i + 1));
            }
        }
Ejemplo n.º 8
0
 public void IfQuantityOverLimit_ThrowArgumentException()
 {
     partialRoll = new RandomPartialRoll(Limits.Quantity + 1, mockRandom.Object);
     Assert.That(() => partialRoll.d20(), Throws.InstanceOf<ArgumentException>().With.Message.EqualTo("Die roll of 16500001d20 is too large for RollGen"));
 }