public void ShouldClampHPMaxValue()
    {
        UnitSO unit      = TestUtil.CreateUnit();
        float  initialHP = unit.currentHP;

        var result = new ModifyHPUseCase(unit, 10).Execute();

        Assert.AreEqual(unit.currentHP, initialHP);
    }
    public void ShouldChangeHP()
    {
        UnitSO unit      = TestUtil.CreateUnit();
        float  initialHP = unit.currentHP;

        var result = new ModifyHPUseCase(unit, -initialHP * 0.5f).Execute();

        Assert.AreEqual(unit.currentHP, initialHP - initialHP * 0.5f);
    }
    public void WhenHpIsZero_ApplyDeath()
    {
        UnitSO unit      = TestUtil.CreateUnit();
        float  initialHP = unit.currentHP;

        var result = new ModifyHPUseCase(unit, -2 * initialHP).Execute();

        Assert.AreEqual(unit.currentHP, 0);
        Assert.IsTrue(unit.currentStatusEffect.Contains(StatusEffect.DEATH));
    }