public void Calculate_WithPreviousUses_UsesIncreasedBasePower()
        {
            // Arrange
            var random = new Mock <IRandom>();

            random
            .Setup(m => m.Next(80, 101))
            .Returns(100);

            var damage = TestHelpers.CreateDamageAction();

            var user            = TestHelpers.CreateBasicCharacter(attack: 6);
            var otherCharacters = new[]
            {
                TestHelpers.CreateBasicCharacter(defence: 5),
            };

            var actionHistory = new Mock <IActionHistory>();

            actionHistory
            .Setup(m => m.GetMoveActionConsecutiveSuccessCount(damage, user))
            .Returns(1);

            var calculator = new BasePowerIncreasesLinearlyWithUsesDamageCalculator(10, 5, random.Object, actionHistory.Object);

            // Act
            var calculation = calculator.Calculate(user, damage, otherCharacters).Single();

            // Assert
            Assert.Multiple(() =>
            {
                Assert.That(calculation.Success, Is.True);
                Assert.That(calculation.Amount, Is.EqualTo(15));
            });
        }
 public void Ctor_NullActionHistory_Throws()
 {
     Assert.Throws <ArgumentNullException>(() =>
     {
         _ = new BasePowerIncreasesLinearlyWithUsesDamageCalculator(
             0,
             0,
             new Mock <IRandom>().Object,
             null);
     });
 }