63 lines
1.9 KiB
C#
63 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);
|
|
}
|
|
|
|
} |