47 lines
1.3 KiB
C#
47 lines
1.3 KiB
C#
using NUnit.Framework;
|
|
using UnityEngine;
|
|
using BaseGames.Enemies.Abilities;
|
|
|
|
namespace BaseGames.Tests.EditMode.AI
|
|
{
|
|
public class AbilityRefTests
|
|
{
|
|
[Test]
|
|
public void ImplicitFromString_ExposesLiteralId()
|
|
{
|
|
AbilityRef r = "e001_chase";
|
|
Assert.AreEqual("e001_chase", r.Id);
|
|
Assert.IsFalse(r.IsEmpty);
|
|
}
|
|
|
|
[Test]
|
|
public void FromAsset_ExposesAssetAbilityId()
|
|
{
|
|
var so = ScriptableObject.CreateInstance<EnemyAbilitySO>();
|
|
so.abilityId = "from_asset";
|
|
AbilityRef r = so;
|
|
Assert.AreEqual("from_asset", r.Id);
|
|
Object.DestroyImmediate(so);
|
|
}
|
|
|
|
[Test]
|
|
public void Default_IsEmpty()
|
|
{
|
|
var r = default(AbilityRef);
|
|
Assert.IsTrue(r.IsEmpty);
|
|
Assert.IsNull(r.Id);
|
|
}
|
|
|
|
[Test]
|
|
public void AssetWins_WhenBothSet()
|
|
{
|
|
var so = ScriptableObject.CreateInstance<EnemyAbilitySO>();
|
|
so.abilityId = "asset_id";
|
|
var r = new AbilityRef(so, "literal_id");
|
|
Assert.AreEqual("asset_id", r.Id);
|
|
Assert.IsTrue(r.HasConflict); // 供校验器报警告
|
|
Object.DestroyImmediate(so);
|
|
}
|
|
}
|
|
}
|