mirror of
https://github.com/MirrorNetworking/Mirror.git
synced 2024-11-18 11:00:32 +00:00
Moving classes to their own files (#1845)
This commit is contained in:
parent
c9db7e3754
commit
64e52bf31e
64
Assets/Mirror/Tests/Editor/ClientSceneTestsBase.cs
Normal file
64
Assets/Mirror/Tests/Editor/ClientSceneTestsBase.cs
Normal file
@ -0,0 +1,64 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using NUnit.Framework;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Mirror.Tests
|
||||
{
|
||||
[TestFixture]
|
||||
public abstract class ClientSceneTestsBase
|
||||
{
|
||||
protected const string NewAssetIdIgnoreMessage = "Ignoring this test till we know how to fix it, see https://github.com/vis2k/Mirror/issues/1831";
|
||||
|
||||
// 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 validPrefabNetId;
|
||||
protected GameObject prefabWithChildren;
|
||||
protected GameObject invalidPrefab;
|
||||
protected Guid validPrefabGuid;
|
||||
protected Guid anotherGuid;
|
||||
|
||||
protected Dictionary<Guid, GameObject> prefabs => ClientScene.prefabs;
|
||||
protected Dictionary<Guid, SpawnHandlerDelegate> spawnHandlers => ClientScene.spawnHandlers;
|
||||
protected Dictionary<Guid, UnSpawnDelegate> unspawnHandlers => ClientScene.unspawnHandlers;
|
||||
|
||||
static GameObject LoadPrefab(string guid)
|
||||
{
|
||||
return AssetDatabase.LoadAssetAtPath<GameObject>(AssetDatabase.GUIDToAssetPath(guid));
|
||||
}
|
||||
|
||||
[OneTimeSetUp]
|
||||
public void OneTimeSetUp()
|
||||
{
|
||||
validPrefab = LoadPrefab(ValidPrefabAssetGuid);
|
||||
validPrefabNetId = validPrefab.GetComponent<NetworkIdentity>();
|
||||
prefabWithChildren = LoadPrefab(PrefabWithChildrenAssetGuid);
|
||||
invalidPrefab = LoadPrefab(InvalidPrefabAssetGuid);
|
||||
validPrefabGuid = new Guid(ValidPrefabAssetGuid);
|
||||
anotherGuid = new Guid(AnotherGuidString);
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
public void TearDown()
|
||||
{
|
||||
ClientScene.Shutdown();
|
||||
// reset asset id incase they are changed by tests
|
||||
validPrefabNetId.assetId = validPrefabGuid;
|
||||
}
|
||||
|
||||
[OneTimeTearDown]
|
||||
public void OneTimeTearDown()
|
||||
{
|
||||
validPrefab = null;
|
||||
prefabWithChildren = null;
|
||||
invalidPrefab = null;
|
||||
}
|
||||
}
|
||||
}
|
66
Assets/Mirror/Tests/Editor/ClientSceneTests_ClearSpawners.cs
Normal file
66
Assets/Mirror/Tests/Editor/ClientSceneTests_ClearSpawners.cs
Normal file
@ -0,0 +1,66 @@
|
||||
using System;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace Mirror.Tests
|
||||
{
|
||||
public class ClientSceneTests_ClearSpawners : ClientSceneTestsBase
|
||||
{
|
||||
[Test]
|
||||
public void RemovesAllPrefabsFromDictionary()
|
||||
{
|
||||
prefabs.Add(Guid.NewGuid(), null);
|
||||
prefabs.Add(Guid.NewGuid(), null);
|
||||
prefabs.Add(Guid.NewGuid(), null);
|
||||
|
||||
ClientScene.ClearSpawners();
|
||||
|
||||
Assert.IsEmpty(prefabs);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void RemovesAllSpawnHandlersFromDictionary()
|
||||
{
|
||||
spawnHandlers.Add(Guid.NewGuid(), null);
|
||||
spawnHandlers.Add(Guid.NewGuid(), null);
|
||||
spawnHandlers.Add(Guid.NewGuid(), null);
|
||||
|
||||
ClientScene.ClearSpawners();
|
||||
|
||||
Assert.IsEmpty(spawnHandlers);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void RemovesAllUnspawnHandlersFromDictionary()
|
||||
{
|
||||
unspawnHandlers.Add(Guid.NewGuid(), null);
|
||||
unspawnHandlers.Add(Guid.NewGuid(), null);
|
||||
unspawnHandlers.Add(Guid.NewGuid(), null);
|
||||
|
||||
ClientScene.ClearSpawners();
|
||||
|
||||
Assert.IsEmpty(unspawnHandlers);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ClearsAllDictionary()
|
||||
{
|
||||
prefabs.Add(Guid.NewGuid(), null);
|
||||
prefabs.Add(Guid.NewGuid(), null);
|
||||
prefabs.Add(Guid.NewGuid(), null);
|
||||
|
||||
spawnHandlers.Add(Guid.NewGuid(), null);
|
||||
spawnHandlers.Add(Guid.NewGuid(), null);
|
||||
spawnHandlers.Add(Guid.NewGuid(), null);
|
||||
|
||||
unspawnHandlers.Add(Guid.NewGuid(), null);
|
||||
unspawnHandlers.Add(Guid.NewGuid(), null);
|
||||
unspawnHandlers.Add(Guid.NewGuid(), null);
|
||||
|
||||
ClientScene.ClearSpawners();
|
||||
|
||||
Assert.IsEmpty(prefabs);
|
||||
Assert.IsEmpty(spawnHandlers);
|
||||
Assert.IsEmpty(unspawnHandlers);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ad2fe5633a9652045a5f7eb2643b6956
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
62
Assets/Mirror/Tests/Editor/ClientSceneTests_GetPrefab.cs
Normal file
62
Assets/Mirror/Tests/Editor/ClientSceneTests_GetPrefab.cs
Normal file
@ -0,0 +1,62 @@
|
||||
using System;
|
||||
using NUnit.Framework;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Mirror.Tests
|
||||
{
|
||||
public class ClientSceneTests_GetPrefab : ClientSceneTestsBase
|
||||
{
|
||||
[Test]
|
||||
public void ReturnsFalseForEmptyGuid()
|
||||
{
|
||||
bool result = ClientScene.GetPrefab(new Guid(), out GameObject prefab);
|
||||
|
||||
Assert.IsFalse(result);
|
||||
Assert.IsNull(prefab);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ReturnsFalseForPrefabNotFound()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
bool result = ClientScene.GetPrefab(guid, out GameObject prefab);
|
||||
|
||||
Assert.IsFalse(result);
|
||||
Assert.IsNull(prefab);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ReturnsFalseForPrefabIsNull()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
prefabs.Add(guid, null);
|
||||
bool result = ClientScene.GetPrefab(guid, out GameObject prefab);
|
||||
|
||||
Assert.IsFalse(result);
|
||||
Assert.IsNull(prefab);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ReturnsTrueWhenPrefabIsFound()
|
||||
{
|
||||
prefabs.Add(validPrefabGuid, validPrefab);
|
||||
bool result = ClientScene.GetPrefab(validPrefabGuid, out GameObject prefab);
|
||||
|
||||
Assert.IsTrue(result);
|
||||
Assert.NotNull(prefab);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void HasOutPrefabWithCorrectGuid()
|
||||
{
|
||||
prefabs.Add(validPrefabGuid, validPrefab);
|
||||
ClientScene.GetPrefab(validPrefabGuid, out GameObject prefab);
|
||||
|
||||
|
||||
Assert.NotNull(prefab);
|
||||
|
||||
NetworkIdentity networkID = prefab.GetComponent<NetworkIdentity>();
|
||||
Assert.AreEqual(networkID.assetId, validPrefabGuid);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 27cbff3906928974bb20c3f50eacbbb0
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1,123 +1,11 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System;
|
||||
using NUnit.Framework;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using UnityEngine.TestTools;
|
||||
|
||||
namespace Mirror.Tests
|
||||
{
|
||||
[TestFixture]
|
||||
public abstract class BaseClientSceneTests
|
||||
{
|
||||
protected const string NewAssetIdIgnoreMessage = "Ignoring this test till we know how to fix it, see https://github.com/vis2k/Mirror/issues/1831";
|
||||
|
||||
// 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 validPrefabNetId;
|
||||
protected GameObject prefabWithChildren;
|
||||
protected GameObject invalidPrefab;
|
||||
protected Guid validPrefabGuid;
|
||||
protected Guid anotherGuid;
|
||||
|
||||
protected Dictionary<Guid, GameObject> prefabs => ClientScene.prefabs;
|
||||
protected Dictionary<Guid, SpawnHandlerDelegate> spawnHandlers => ClientScene.spawnHandlers;
|
||||
protected Dictionary<Guid, UnSpawnDelegate> unspawnHandlers => ClientScene.unspawnHandlers;
|
||||
|
||||
static GameObject LoadPrefab(string guid)
|
||||
{
|
||||
return AssetDatabase.LoadAssetAtPath<GameObject>(AssetDatabase.GUIDToAssetPath(guid));
|
||||
}
|
||||
|
||||
[OneTimeSetUp]
|
||||
public void OneTimeSetUp()
|
||||
{
|
||||
validPrefab = LoadPrefab(ValidPrefabAssetGuid);
|
||||
validPrefabNetId = validPrefab.GetComponent<NetworkIdentity>();
|
||||
prefabWithChildren = LoadPrefab(PrefabWithChildrenAssetGuid);
|
||||
invalidPrefab = LoadPrefab(InvalidPrefabAssetGuid);
|
||||
validPrefabGuid = new Guid(ValidPrefabAssetGuid);
|
||||
anotherGuid = new Guid(AnotherGuidString);
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
public void TearDown()
|
||||
{
|
||||
ClientScene.Shutdown();
|
||||
// reset asset id incase they are changed by tests
|
||||
validPrefabNetId.assetId = validPrefabGuid;
|
||||
}
|
||||
|
||||
[OneTimeTearDown]
|
||||
public void OneTimeTearDown()
|
||||
{
|
||||
validPrefab = null;
|
||||
prefabWithChildren = null;
|
||||
invalidPrefab = null;
|
||||
}
|
||||
}
|
||||
public class ClientSceneTests_GetPrefab : BaseClientSceneTests
|
||||
{
|
||||
[Test]
|
||||
public void ReturnsFalseForEmptyGuid()
|
||||
{
|
||||
bool result = ClientScene.GetPrefab(new Guid(), out GameObject prefab);
|
||||
|
||||
Assert.IsFalse(result);
|
||||
Assert.IsNull(prefab);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ReturnsFalseForPrefabNotFound()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
bool result = ClientScene.GetPrefab(guid, out GameObject prefab);
|
||||
|
||||
Assert.IsFalse(result);
|
||||
Assert.IsNull(prefab);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ReturnsFalseForPrefabIsNull()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
prefabs.Add(guid, null);
|
||||
bool result = ClientScene.GetPrefab(guid, out GameObject prefab);
|
||||
|
||||
Assert.IsFalse(result);
|
||||
Assert.IsNull(prefab);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ReturnsTrueWhenPrefabIsFound()
|
||||
{
|
||||
prefabs.Add(validPrefabGuid, validPrefab);
|
||||
bool result = ClientScene.GetPrefab(validPrefabGuid, out GameObject prefab);
|
||||
|
||||
Assert.IsTrue(result);
|
||||
Assert.NotNull(prefab);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void HasOutPrefabWithCorrectGuid()
|
||||
{
|
||||
prefabs.Add(validPrefabGuid, validPrefab);
|
||||
ClientScene.GetPrefab(validPrefabGuid, out GameObject prefab);
|
||||
|
||||
|
||||
Assert.NotNull(prefab);
|
||||
|
||||
NetworkIdentity networkID = prefab.GetComponent<NetworkIdentity>();
|
||||
Assert.AreEqual(networkID.assetId, validPrefabGuid);
|
||||
}
|
||||
}
|
||||
public class ClientSceneTests_RegisterPrefab : BaseClientSceneTests
|
||||
public class ClientSceneTests_RegisterPrefab : ClientSceneTestsBase
|
||||
{
|
||||
[Test]
|
||||
[TestCase(RegisterPrefabOverload.Prefab, false)]
|
||||
@ -663,361 +551,4 @@ public void Handler_ErrorWhenUnSpawnHandlerIsNull(RegisterPrefabOverload overloa
|
||||
}
|
||||
|
||||
}
|
||||
public class ClientSceneTests_UnregisterPrefab : BaseClientSceneTests
|
||||
{
|
||||
[Test]
|
||||
public void RemovesPrefabFromDictionary()
|
||||
{
|
||||
prefabs.Add(validPrefabGuid, validPrefab);
|
||||
|
||||
ClientScene.UnregisterPrefab(validPrefab);
|
||||
|
||||
Assert.IsFalse(prefabs.ContainsKey(validPrefabGuid));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void RemovesSpawnHandlerFromDictionary()
|
||||
{
|
||||
spawnHandlers.Add(validPrefabGuid, new SpawnHandlerDelegate(x => null));
|
||||
|
||||
ClientScene.UnregisterPrefab(validPrefab);
|
||||
|
||||
Assert.IsFalse(spawnHandlers.ContainsKey(validPrefabGuid));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void RemovesUnSpawnHandlerFromDictionary()
|
||||
{
|
||||
unspawnHandlers.Add(validPrefabGuid, new UnSpawnDelegate(x => { }));
|
||||
|
||||
ClientScene.UnregisterPrefab(validPrefab);
|
||||
|
||||
Assert.IsFalse(unspawnHandlers.ContainsKey(validPrefabGuid));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ErrorWhenPrefabIsNull()
|
||||
{
|
||||
LogAssert.Expect(LogType.Error, "Could not unregister prefab because it was null");
|
||||
ClientScene.UnregisterPrefab(null);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ErrorWhenPrefabHasNoNetworkIdentity()
|
||||
{
|
||||
LogAssert.Expect(LogType.Error, $"Could not unregister '{invalidPrefab.name}' since it contains no NetworkIdentity component");
|
||||
ClientScene.UnregisterPrefab(invalidPrefab);
|
||||
}
|
||||
|
||||
}
|
||||
public class ClientSceneTests_RegisterSpawnHandler : BaseClientSceneTests
|
||||
{
|
||||
[Test]
|
||||
public void SpawnDelegate_AddsHandlerToSpawnHandlers()
|
||||
{
|
||||
int handlerCalled = 0;
|
||||
|
||||
Guid guid = Guid.NewGuid();
|
||||
SpawnDelegate spawnHandler = new SpawnDelegate((pos, rot) =>
|
||||
{
|
||||
handlerCalled++;
|
||||
return null;
|
||||
});
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => { });
|
||||
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
|
||||
Assert.IsTrue(spawnHandlers.ContainsKey(guid));
|
||||
|
||||
// check spawnHandler above is called
|
||||
SpawnHandlerDelegate handler = spawnHandlers[guid];
|
||||
handler.Invoke(default);
|
||||
Assert.That(handlerCalled, Is.EqualTo(1));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnDelegate_AddsHandlerToSpawnHandlersWithCorrectArguments()
|
||||
{
|
||||
int handlerCalled = 0;
|
||||
Vector3 somePosition = new Vector3(10, 20, 3);
|
||||
|
||||
Guid guid = Guid.NewGuid();
|
||||
SpawnDelegate spawnHandler = new SpawnDelegate((pos, assetId) =>
|
||||
{
|
||||
handlerCalled++;
|
||||
Assert.That(pos, Is.EqualTo(somePosition));
|
||||
Assert.That(assetId, Is.EqualTo(guid));
|
||||
return null;
|
||||
});
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => { });
|
||||
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
|
||||
Assert.IsTrue(spawnHandlers.ContainsKey(guid));
|
||||
|
||||
// check spawnHandler above is called
|
||||
SpawnHandlerDelegate handler = spawnHandlers[guid];
|
||||
handler.Invoke(new SpawnMessage { position = somePosition, assetId = guid });
|
||||
Assert.That(handlerCalled, Is.EqualTo(1));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnDelegate_AddsHandlerToUnSpawnHandlers()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
SpawnDelegate spawnHandler = new SpawnDelegate((x, y) => null);
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => { });
|
||||
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
|
||||
Assert.IsTrue(unspawnHandlers.ContainsKey(guid));
|
||||
Assert.AreEqual(unspawnHandlers[guid], unspawnHandler);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnDelegate_ErrorWhenSpawnHandlerIsNull()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
SpawnDelegate spawnHandler = null;
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => { });
|
||||
|
||||
LogAssert.Expect(LogType.Error, $"Can not Register null SpawnHandler for {guid}");
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnDelegate_ErrorWhenUnSpawnHandlerIsNull()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
SpawnDelegate spawnHandler = new SpawnDelegate((x, y) => null);
|
||||
UnSpawnDelegate unspawnHandler = null;
|
||||
|
||||
LogAssert.Expect(LogType.Error, $"Can not Register null UnSpawnHandler for {guid}");
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnDelegate_ErrorWhenAssetIdIsEmpty()
|
||||
{
|
||||
Guid guid = new Guid();
|
||||
SpawnDelegate spawnHandler = new SpawnDelegate((x, y) => null);
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => { });
|
||||
|
||||
LogAssert.Expect(LogType.Error, "Can not Register SpawnHandler for empty Guid");
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnDelegate_WarningWhenHandlerForGuidAlreadyExistsInHandlerDictionary()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
SpawnDelegate spawnHandler = new SpawnDelegate((x, y) => null);
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => { });
|
||||
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
|
||||
SpawnDelegate spawnHandler2 = new SpawnDelegate((x, y) => new GameObject());
|
||||
UnSpawnDelegate unspawnHandler2 = new UnSpawnDelegate(x => UnityEngine.Object.Destroy(x));
|
||||
|
||||
LogAssert.Expect(LogType.Warning, $"Replacing existing spawnHandlers for {guid}");
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler2, unspawnHandler2);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnDelegate_ErrorWhenHandlerForGuidAlreadyExistsInPrefabDictionary()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
prefabs.Add(guid, validPrefab);
|
||||
|
||||
SpawnDelegate spawnHandler = new SpawnDelegate((x, y) => null);
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => { });
|
||||
|
||||
LogAssert.Expect(LogType.Error, $"assetId '{guid}' is already used by prefab '{validPrefab.name}'");
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
}
|
||||
|
||||
|
||||
[Test]
|
||||
public void SpawnHandlerDelegate_AddsHandlerToSpawnHandlers()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
SpawnHandlerDelegate spawnHandler = new SpawnHandlerDelegate(x => null);
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => { });
|
||||
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
|
||||
Assert.IsTrue(spawnHandlers.ContainsKey(guid));
|
||||
Assert.AreEqual(spawnHandlers[guid], spawnHandler);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnHandlerDelegate_AddsHandlerToUnSpawnHandlers()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
SpawnHandlerDelegate spawnHandler = new SpawnHandlerDelegate(x => null);
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => { });
|
||||
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
|
||||
Assert.IsTrue(unspawnHandlers.ContainsKey(guid));
|
||||
Assert.AreEqual(unspawnHandlers[guid], unspawnHandler);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnHandlerDelegate_ErrorWhenSpawnHandlerIsNull()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
SpawnHandlerDelegate spawnHandler = null;
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => { });
|
||||
|
||||
LogAssert.Expect(LogType.Error, $"Can not Register null SpawnHandler for {guid}");
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnHandlerDelegate_ErrorWhenUnSpawnHandlerIsNull()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
SpawnHandlerDelegate spawnHandler = new SpawnHandlerDelegate(x => null);
|
||||
UnSpawnDelegate unspawnHandler = null;
|
||||
|
||||
LogAssert.Expect(LogType.Error, $"Can not Register null UnSpawnHandler for {guid}");
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnHandlerDelegate_ErrorWhenAssetIdIsEmpty()
|
||||
{
|
||||
Guid guid = new Guid();
|
||||
SpawnHandlerDelegate spawnHandler = new SpawnHandlerDelegate(x => null);
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => { });
|
||||
|
||||
LogAssert.Expect(LogType.Error, "Can not Register SpawnHandler for empty Guid");
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnHandlerDelegate_WarningWhenHandlerForGuidAlreadyExistsInHandlerDictionary()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
SpawnHandlerDelegate spawnHandler = new SpawnHandlerDelegate(x => null);
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => { });
|
||||
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
|
||||
SpawnHandlerDelegate spawnHandler2 = new SpawnHandlerDelegate(x => new GameObject());
|
||||
UnSpawnDelegate unspawnHandler2 = new UnSpawnDelegate(x => UnityEngine.Object.Destroy(x));
|
||||
|
||||
LogAssert.Expect(LogType.Warning, $"Replacing existing spawnHandlers for {guid}");
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler2, unspawnHandler2);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnHandlerDelegate_ErrorWhenHandlerForGuidAlreadyExistsInPrefabDictionary()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
prefabs.Add(guid, validPrefab);
|
||||
|
||||
SpawnHandlerDelegate spawnHandler = new SpawnHandlerDelegate(x => new GameObject());
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => UnityEngine.Object.Destroy(x));
|
||||
|
||||
LogAssert.Expect(LogType.Error, $"assetId '{guid}' is already used by prefab '{validPrefab.name}'");
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
}
|
||||
|
||||
}
|
||||
public class ClientSceneTests_UnregisterSpawnHandler : BaseClientSceneTests
|
||||
{
|
||||
[Test]
|
||||
public void RemovesSpawnHandlersFromDictionary()
|
||||
{
|
||||
spawnHandlers.Add(validPrefabGuid, new SpawnHandlerDelegate(x => null));
|
||||
|
||||
ClientScene.UnregisterSpawnHandler(validPrefabGuid);
|
||||
|
||||
Assert.IsFalse(unspawnHandlers.ContainsKey(validPrefabGuid));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void RemovesUnSpawnHandlersFromDictionary()
|
||||
{
|
||||
unspawnHandlers.Add(validPrefabGuid, new UnSpawnDelegate(x => { }));
|
||||
|
||||
ClientScene.UnregisterSpawnHandler(validPrefabGuid);
|
||||
|
||||
Assert.IsFalse(unspawnHandlers.ContainsKey(validPrefabGuid));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void DoesNotRemovePrefabDictionary()
|
||||
{
|
||||
prefabs.Add(validPrefabGuid, validPrefab);
|
||||
|
||||
ClientScene.UnregisterSpawnHandler(validPrefabGuid);
|
||||
|
||||
// Should not be removed
|
||||
Assert.IsTrue(prefabs.ContainsKey(validPrefabGuid));
|
||||
}
|
||||
|
||||
}
|
||||
public class ClientSceneTests_ClearSpawners : BaseClientSceneTests
|
||||
{
|
||||
[Test]
|
||||
public void RemovesAllPrefabsFromDictionary()
|
||||
{
|
||||
prefabs.Add(Guid.NewGuid(), null);
|
||||
prefabs.Add(Guid.NewGuid(), null);
|
||||
prefabs.Add(Guid.NewGuid(), null);
|
||||
|
||||
ClientScene.ClearSpawners();
|
||||
|
||||
Assert.IsEmpty(prefabs);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void RemovesAllSpawnHandlersFromDictionary()
|
||||
{
|
||||
spawnHandlers.Add(Guid.NewGuid(), null);
|
||||
spawnHandlers.Add(Guid.NewGuid(), null);
|
||||
spawnHandlers.Add(Guid.NewGuid(), null);
|
||||
|
||||
ClientScene.ClearSpawners();
|
||||
|
||||
Assert.IsEmpty(spawnHandlers);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void RemovesAllUnspawnHandlersFromDictionary()
|
||||
{
|
||||
unspawnHandlers.Add(Guid.NewGuid(), null);
|
||||
unspawnHandlers.Add(Guid.NewGuid(), null);
|
||||
unspawnHandlers.Add(Guid.NewGuid(), null);
|
||||
|
||||
ClientScene.ClearSpawners();
|
||||
|
||||
Assert.IsEmpty(unspawnHandlers);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ClearsAllDictionary()
|
||||
{
|
||||
prefabs.Add(Guid.NewGuid(), null);
|
||||
prefabs.Add(Guid.NewGuid(), null);
|
||||
prefabs.Add(Guid.NewGuid(), null);
|
||||
|
||||
spawnHandlers.Add(Guid.NewGuid(), null);
|
||||
spawnHandlers.Add(Guid.NewGuid(), null);
|
||||
spawnHandlers.Add(Guid.NewGuid(), null);
|
||||
|
||||
unspawnHandlers.Add(Guid.NewGuid(), null);
|
||||
unspawnHandlers.Add(Guid.NewGuid(), null);
|
||||
unspawnHandlers.Add(Guid.NewGuid(), null);
|
||||
|
||||
ClientScene.ClearSpawners();
|
||||
|
||||
Assert.IsEmpty(prefabs);
|
||||
Assert.IsEmpty(spawnHandlers);
|
||||
Assert.IsEmpty(unspawnHandlers);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bdfdcfafb85b3be418f2085e38663006
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,224 @@
|
||||
using System;
|
||||
using NUnit.Framework;
|
||||
using UnityEngine;
|
||||
using UnityEngine.TestTools;
|
||||
|
||||
namespace Mirror.Tests
|
||||
{
|
||||
public class ClientSceneTests_RegisterSpawnHandler : ClientSceneTestsBase
|
||||
{
|
||||
[Test]
|
||||
public void SpawnDelegate_AddsHandlerToSpawnHandlers()
|
||||
{
|
||||
int handlerCalled = 0;
|
||||
|
||||
Guid guid = Guid.NewGuid();
|
||||
SpawnDelegate spawnHandler = new SpawnDelegate((pos, rot) =>
|
||||
{
|
||||
handlerCalled++;
|
||||
return null;
|
||||
});
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => { });
|
||||
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
|
||||
Assert.IsTrue(spawnHandlers.ContainsKey(guid));
|
||||
|
||||
// check spawnHandler above is called
|
||||
SpawnHandlerDelegate handler = spawnHandlers[guid];
|
||||
handler.Invoke(default);
|
||||
Assert.That(handlerCalled, Is.EqualTo(1));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnDelegate_AddsHandlerToSpawnHandlersWithCorrectArguments()
|
||||
{
|
||||
int handlerCalled = 0;
|
||||
Vector3 somePosition = new Vector3(10, 20, 3);
|
||||
|
||||
Guid guid = Guid.NewGuid();
|
||||
SpawnDelegate spawnHandler = new SpawnDelegate((pos, assetId) =>
|
||||
{
|
||||
handlerCalled++;
|
||||
Assert.That(pos, Is.EqualTo(somePosition));
|
||||
Assert.That(assetId, Is.EqualTo(guid));
|
||||
return null;
|
||||
});
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => { });
|
||||
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
|
||||
Assert.IsTrue(spawnHandlers.ContainsKey(guid));
|
||||
|
||||
// check spawnHandler above is called
|
||||
SpawnHandlerDelegate handler = spawnHandlers[guid];
|
||||
handler.Invoke(new SpawnMessage { position = somePosition, assetId = guid });
|
||||
Assert.That(handlerCalled, Is.EqualTo(1));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnDelegate_AddsHandlerToUnSpawnHandlers()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
SpawnDelegate spawnHandler = new SpawnDelegate((x, y) => null);
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => { });
|
||||
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
|
||||
Assert.IsTrue(unspawnHandlers.ContainsKey(guid));
|
||||
Assert.AreEqual(unspawnHandlers[guid], unspawnHandler);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnDelegate_ErrorWhenSpawnHandlerIsNull()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
SpawnDelegate spawnHandler = null;
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => { });
|
||||
|
||||
LogAssert.Expect(LogType.Error, $"Can not Register null SpawnHandler for {guid}");
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnDelegate_ErrorWhenUnSpawnHandlerIsNull()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
SpawnDelegate spawnHandler = new SpawnDelegate((x, y) => null);
|
||||
UnSpawnDelegate unspawnHandler = null;
|
||||
|
||||
LogAssert.Expect(LogType.Error, $"Can not Register null UnSpawnHandler for {guid}");
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnDelegate_ErrorWhenAssetIdIsEmpty()
|
||||
{
|
||||
Guid guid = new Guid();
|
||||
SpawnDelegate spawnHandler = new SpawnDelegate((x, y) => null);
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => { });
|
||||
|
||||
LogAssert.Expect(LogType.Error, "Can not Register SpawnHandler for empty Guid");
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnDelegate_WarningWhenHandlerForGuidAlreadyExistsInHandlerDictionary()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
SpawnDelegate spawnHandler = new SpawnDelegate((x, y) => null);
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => { });
|
||||
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
|
||||
SpawnDelegate spawnHandler2 = new SpawnDelegate((x, y) => new GameObject());
|
||||
UnSpawnDelegate unspawnHandler2 = new UnSpawnDelegate(x => UnityEngine.Object.Destroy(x));
|
||||
|
||||
LogAssert.Expect(LogType.Warning, $"Replacing existing spawnHandlers for {guid}");
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler2, unspawnHandler2);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnDelegate_ErrorWhenHandlerForGuidAlreadyExistsInPrefabDictionary()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
prefabs.Add(guid, validPrefab);
|
||||
|
||||
SpawnDelegate spawnHandler = new SpawnDelegate((x, y) => null);
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => { });
|
||||
|
||||
LogAssert.Expect(LogType.Error, $"assetId '{guid}' is already used by prefab '{validPrefab.name}'");
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
}
|
||||
|
||||
|
||||
[Test]
|
||||
public void SpawnHandlerDelegate_AddsHandlerToSpawnHandlers()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
SpawnHandlerDelegate spawnHandler = new SpawnHandlerDelegate(x => null);
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => { });
|
||||
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
|
||||
Assert.IsTrue(spawnHandlers.ContainsKey(guid));
|
||||
Assert.AreEqual(spawnHandlers[guid], spawnHandler);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnHandlerDelegate_AddsHandlerToUnSpawnHandlers()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
SpawnHandlerDelegate spawnHandler = new SpawnHandlerDelegate(x => null);
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => { });
|
||||
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
|
||||
Assert.IsTrue(unspawnHandlers.ContainsKey(guid));
|
||||
Assert.AreEqual(unspawnHandlers[guid], unspawnHandler);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnHandlerDelegate_ErrorWhenSpawnHandlerIsNull()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
SpawnHandlerDelegate spawnHandler = null;
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => { });
|
||||
|
||||
LogAssert.Expect(LogType.Error, $"Can not Register null SpawnHandler for {guid}");
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnHandlerDelegate_ErrorWhenUnSpawnHandlerIsNull()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
SpawnHandlerDelegate spawnHandler = new SpawnHandlerDelegate(x => null);
|
||||
UnSpawnDelegate unspawnHandler = null;
|
||||
|
||||
LogAssert.Expect(LogType.Error, $"Can not Register null UnSpawnHandler for {guid}");
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnHandlerDelegate_ErrorWhenAssetIdIsEmpty()
|
||||
{
|
||||
Guid guid = new Guid();
|
||||
SpawnHandlerDelegate spawnHandler = new SpawnHandlerDelegate(x => null);
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => { });
|
||||
|
||||
LogAssert.Expect(LogType.Error, "Can not Register SpawnHandler for empty Guid");
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnHandlerDelegate_WarningWhenHandlerForGuidAlreadyExistsInHandlerDictionary()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
SpawnHandlerDelegate spawnHandler = new SpawnHandlerDelegate(x => null);
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => { });
|
||||
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
|
||||
SpawnHandlerDelegate spawnHandler2 = new SpawnHandlerDelegate(x => new GameObject());
|
||||
UnSpawnDelegate unspawnHandler2 = new UnSpawnDelegate(x => UnityEngine.Object.Destroy(x));
|
||||
|
||||
LogAssert.Expect(LogType.Warning, $"Replacing existing spawnHandlers for {guid}");
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler2, unspawnHandler2);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SpawnHandlerDelegate_ErrorWhenHandlerForGuidAlreadyExistsInPrefabDictionary()
|
||||
{
|
||||
Guid guid = Guid.NewGuid();
|
||||
prefabs.Add(guid, validPrefab);
|
||||
|
||||
SpawnHandlerDelegate spawnHandler = new SpawnHandlerDelegate(x => new GameObject());
|
||||
UnSpawnDelegate unspawnHandler = new UnSpawnDelegate(x => UnityEngine.Object.Destroy(x));
|
||||
|
||||
LogAssert.Expect(LogType.Error, $"assetId '{guid}' is already used by prefab '{validPrefab.name}'");
|
||||
ClientScene.RegisterSpawnHandler(guid, spawnHandler, unspawnHandler);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c7e6577e8c2e64e41ae255edc61e91a2
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,54 @@
|
||||
using NUnit.Framework;
|
||||
using UnityEngine;
|
||||
using UnityEngine.TestTools;
|
||||
|
||||
namespace Mirror.Tests
|
||||
{
|
||||
public class ClientSceneTests_UnregisterPrefab : ClientSceneTestsBase
|
||||
{
|
||||
[Test]
|
||||
public void RemovesPrefabFromDictionary()
|
||||
{
|
||||
prefabs.Add(validPrefabGuid, validPrefab);
|
||||
|
||||
ClientScene.UnregisterPrefab(validPrefab);
|
||||
|
||||
Assert.IsFalse(prefabs.ContainsKey(validPrefabGuid));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void RemovesSpawnHandlerFromDictionary()
|
||||
{
|
||||
spawnHandlers.Add(validPrefabGuid, new SpawnHandlerDelegate(x => null));
|
||||
|
||||
ClientScene.UnregisterPrefab(validPrefab);
|
||||
|
||||
Assert.IsFalse(spawnHandlers.ContainsKey(validPrefabGuid));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void RemovesUnSpawnHandlerFromDictionary()
|
||||
{
|
||||
unspawnHandlers.Add(validPrefabGuid, new UnSpawnDelegate(x => { }));
|
||||
|
||||
ClientScene.UnregisterPrefab(validPrefab);
|
||||
|
||||
Assert.IsFalse(unspawnHandlers.ContainsKey(validPrefabGuid));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ErrorWhenPrefabIsNull()
|
||||
{
|
||||
LogAssert.Expect(LogType.Error, "Could not unregister prefab because it was null");
|
||||
ClientScene.UnregisterPrefab(null);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ErrorWhenPrefabHasNoNetworkIdentity()
|
||||
{
|
||||
LogAssert.Expect(LogType.Error, $"Could not unregister '{invalidPrefab.name}' since it contains no NetworkIdentity component");
|
||||
ClientScene.UnregisterPrefab(invalidPrefab);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aa6fa692d80eaf8419e559c35034f016
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,39 @@
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace Mirror.Tests
|
||||
{
|
||||
public class ClientSceneTests_UnregisterSpawnHandler : ClientSceneTestsBase
|
||||
{
|
||||
[Test]
|
||||
public void RemovesSpawnHandlersFromDictionary()
|
||||
{
|
||||
spawnHandlers.Add(validPrefabGuid, new SpawnHandlerDelegate(x => null));
|
||||
|
||||
ClientScene.UnregisterSpawnHandler(validPrefabGuid);
|
||||
|
||||
Assert.IsFalse(unspawnHandlers.ContainsKey(validPrefabGuid));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void RemovesUnSpawnHandlersFromDictionary()
|
||||
{
|
||||
unspawnHandlers.Add(validPrefabGuid, new UnSpawnDelegate(x => { }));
|
||||
|
||||
ClientScene.UnregisterSpawnHandler(validPrefabGuid);
|
||||
|
||||
Assert.IsFalse(unspawnHandlers.ContainsKey(validPrefabGuid));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void DoesNotRemovePrefabDictionary()
|
||||
{
|
||||
prefabs.Add(validPrefabGuid, validPrefab);
|
||||
|
||||
ClientScene.UnregisterSpawnHandler(validPrefabGuid);
|
||||
|
||||
// Should not be removed
|
||||
Assert.IsTrue(prefabs.ContainsKey(validPrefabGuid));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 49ef76b8883ba3845942503683c9a9b3
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Loading…
Reference in New Issue
Block a user