using PkmnLib.Dynamic.Models; using PkmnLib.Plugin.Gen7.Moves; using PkmnLib.Static; namespace PkmnLib.Plugin.Gen7.Tests.Scripts.Moves; public class AcrobaticsTests { [Test] public async Task 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 await Assert.That(basePower).IsEqualTo((byte)20); } [Test] public async Task 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 await Assert.That(basePower).IsEqualTo((byte)10); } [Test] public async Task 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 await Assert.That(basePower).IsEqualTo(byte.MaxValue); } }