init
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
using System.Collections.Generic;
|
||||
using NUnit.Framework;
|
||||
using Sirenix.Utilities;
|
||||
using Test.Util;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using VOID.Generic.Objects.Weapon;
|
||||
|
||||
namespace Test.EditMode.Prefabs.Generic
|
||||
{
|
||||
public class WeaponObjectTest
|
||||
{
|
||||
private List<GameObject> _gameObjects = new();
|
||||
|
||||
[OneTimeSetUp]
|
||||
public void Setup()
|
||||
{
|
||||
AssetDatabase.FindAssets($"t:{nameof(GameObject)}").ForEach(gameObjectGuid =>
|
||||
{
|
||||
var gameObjectPath = AssetDatabase.GUIDToAssetPath(gameObjectGuid);
|
||||
var gameObject = AssetDatabase.LoadAssetAtPath<GameObject>(gameObjectPath);
|
||||
var weaponObjects = gameObject.GetComponentsInChildren<WeaponObject>();
|
||||
|
||||
// If prefab have any ArmorObject - take it, we will test it
|
||||
if (weaponObjects.Length > 0) _gameObjects.Add(gameObject);
|
||||
});
|
||||
}
|
||||
|
||||
[OneTimeTearDown]
|
||||
public void Cleanup()
|
||||
{
|
||||
_gameObjects?.Clear();
|
||||
_gameObjects = null;
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void WeaponData_Damage()
|
||||
{
|
||||
_gameObjects.ForEach(gameObject =>
|
||||
{
|
||||
var weaponObject = gameObject.GetComponent<WeaponObject>();
|
||||
var prefabPath = AssetDatabase.GetAssetPath(gameObject.GetInstanceID());
|
||||
var prefabPathHyperlink = DebugLogUtil.Hyperlink(prefabPath);
|
||||
|
||||
var damageMin = weaponObject.weaponData.damageMin;
|
||||
var damageMax = weaponObject.weaponData.damageMax;
|
||||
|
||||
if (damageMin < 0f)
|
||||
Debug.LogError($"{nameof(WeaponObject)}'s damage min is lesser than 0: {prefabPathHyperlink}", weaponObject);
|
||||
|
||||
if (damageMax < 0f)
|
||||
Debug.LogError($"{nameof(WeaponObject)}'s damage max is lesser than 0: {prefabPathHyperlink}", weaponObject);
|
||||
|
||||
if (damageMin > damageMax)
|
||||
Debug.LogError($"{nameof(WeaponObject)}'s damage min is greater than damage max: {prefabPathHyperlink}", weaponObject);
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void WeaponData_AttackAbility()
|
||||
{
|
||||
_gameObjects.ForEach(gameObject =>
|
||||
{
|
||||
var weaponObject = gameObject.GetComponent<WeaponObject>();
|
||||
var prefabPath = AssetDatabase.GetAssetPath(gameObject.GetInstanceID());
|
||||
var prefabPathHyperlink = DebugLogUtil.Hyperlink(prefabPath);
|
||||
|
||||
if (!weaponObject.weaponData.attackAbility)
|
||||
Debug.LogError($"{nameof(WeaponObject)}'s attack ability is not selected: {prefabPathHyperlink}", weaponObject);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user