using PkmnLib.Dynamic.Models; using PkmnLib.Plugin.Gen7.Moves; using PkmnLib.Static; namespace PkmnLib.Plugin.Gen7.Tests.Scripts.Moves; public class AcrobaticsTests { [Test] public void ChangeBasePower_UserNotHoldingItem_BasePowerDoubles() { // Arrange var move = new Mock(); var target = new Mock(); byte basePower = 10; move.Setup(m => m.User).Returns(new Mock().Object); move.Setup(m => m.User.HeldItem).Returns((IItem?)null); var acrobatics = new Acrobatics(); // Act acrobatics.ChangeBasePower(move.Object, target.Object, 0, ref basePower); // Assert Assert.That(basePower, Is.EqualTo(20)); } [Test] public void ChangeBasePower_UserHoldingItem_BasePowerUnchanged() { // Arrange var move = new Mock(); var target = new Mock(); byte basePower = 10; move.Setup(m => m.User).Returns(new Mock().Object); move.Setup(m => m.User.HeldItem).Returns(new Mock().Object); var acrobatics = new Acrobatics(); // Act acrobatics.ChangeBasePower(move.Object, target.Object, 0, ref basePower); // Assert Assert.That(basePower, Is.EqualTo(10)); } [Test] public void ChangeBasePower_UserNotHoldingItem_NoOverflow() { // Arrange var move = new Mock(); var target = new Mock(); byte basePower = 200; move.Setup(m => m.User).Returns(new Mock().Object); move.Setup(m => m.User.HeldItem).Returns((IItem?)null); var acrobatics = new Acrobatics(); // Act acrobatics.ChangeBasePower(move.Object, target.Object, 0, ref basePower); // Assert Assert.That(basePower, Is.EqualTo(byte.MaxValue)); } }