using System; using NUnit.Framework; using UnityEditor; using UnityEngine; namespace Mirror.Tests { /// /// Used by both runtime and edit time tests /// [TestFixture] public abstract class ClientSceneTestsBase : MirrorEditModeTest { // use guid to find asset so that the path does not matter protected const string ValidPrefabAssetGuid = "33169286da0313d45ab5bfccc6cf3775"; protected const string PrefabWithChildrenAssetGuid = "a78e009e3f2dee44e8859516974ede43"; protected const string InvalidPrefabAssetGuid = "78f0a3f755d35324e959f3ecdd993fb0"; // random guid, not used anywhere protected const string AnotherGuidString = "5794128cdfda04542985151f82990d05"; protected GameObject validPrefab; protected NetworkIdentity validPrefabNetworkIdentity; protected GameObject prefabWithChildren; protected GameObject invalidPrefab; protected Guid validPrefabGuid; protected Guid anotherGuid; static GameObject LoadPrefab(string guid) { return AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(guid)); } [OneTimeSetUp] public void OneTimeSetUp() { validPrefab = LoadPrefab(ValidPrefabAssetGuid); validPrefabNetworkIdentity = validPrefab.GetComponent(); prefabWithChildren = LoadPrefab(PrefabWithChildrenAssetGuid); invalidPrefab = LoadPrefab(InvalidPrefabAssetGuid); validPrefabGuid = new Guid(ValidPrefabAssetGuid); anotherGuid = new Guid(AnotherGuidString); } [TearDown] public override void TearDown() { // reset asset id in case they are changed by tests validPrefabNetworkIdentity.assetId = validPrefabGuid; base.TearDown(); } [OneTimeTearDown] public void OneTimeTearDown() { validPrefab = null; prefabWithChildren = null; invalidPrefab = null; } } }