PkmnLib.NET/Plugins/PkmnLib.Plugin.Gen7.Tests/Scripts/Moves/AcrobaticsTests.cs

62 lines
1.9 KiB
C#

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<IExecutingMove>();
var target = new Mock<IPokemon>();
byte basePower = 10;
move.Setup(m => m.User).Returns(new Mock<IPokemon>().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<IExecutingMove>();
var target = new Mock<IPokemon>();
byte basePower = 10;
move.Setup(m => m.User).Returns(new Mock<IPokemon>().Object);
move.Setup(m => m.User.HeldItem).Returns(new Mock<IItem>().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<IExecutingMove>();
var target = new Mock<IPokemon>();
byte basePower = 200;
move.Setup(m => m.User).Returns(new Mock<IPokemon>().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);
}
}