mirror of
https://github.com/MirrorNetworking/Mirror.git
synced 2024-11-18 02:50:32 +00:00
NetworkBehaviourTests: GetSyncVarGameObjectOnServer
This commit is contained in:
parent
f51e587c67
commit
c6c1a36559
@ -115,6 +115,21 @@ public void SetSyncVarGameObjectExposed(GameObject newGameObject, ulong dirtyBit
|
||||
}
|
||||
}
|
||||
|
||||
// we need to inherit from networkbehaviour to test protected functions
|
||||
public class NetworkBehaviourGetSyncVarGameObjectComponent : NetworkBehaviour
|
||||
{
|
||||
//[SyncVar]
|
||||
public GameObject test;
|
||||
// usually generated by weaver
|
||||
public uint testNetId;
|
||||
|
||||
// SetSyncVarGameObject wrapper to expose it
|
||||
public GameObject GetSyncVarGameObjectExposed()
|
||||
{
|
||||
return GetSyncVarGameObject(testNetId, ref test);
|
||||
}
|
||||
}
|
||||
|
||||
public class NetworkBehaviourTests
|
||||
{
|
||||
GameObject gameObject;
|
||||
@ -1029,6 +1044,39 @@ public void SetSyncVarGameObjectZeroNetId()
|
||||
GameObject.DestroyImmediate(test);
|
||||
GameObject.DestroyImmediate(go);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetSyncVarGameObjectOnServer()
|
||||
{
|
||||
// isServer is only true if we have a server running and netId set
|
||||
Transport.activeTransport = Substitute.For<Transport>();
|
||||
NetworkServer.Listen(1);
|
||||
identity.netId = 42; // otherwise isServer is false
|
||||
Assert.That(identity.isServer, Is.True);
|
||||
|
||||
// add test component
|
||||
NetworkBehaviourGetSyncVarGameObjectComponent comp = gameObject.AddComponent<NetworkBehaviourGetSyncVarGameObjectComponent>();
|
||||
comp.syncInterval = 0; // for isDirty check
|
||||
|
||||
// create a syncable GameObject
|
||||
GameObject go = new GameObject();
|
||||
NetworkIdentity ni = go.AddComponent<NetworkIdentity>();
|
||||
ni.netId = 43;
|
||||
|
||||
// assign it in the component
|
||||
comp.test = go;
|
||||
comp.testNetId = ni.netId;
|
||||
|
||||
// get it on the server. should simply return the field instead of
|
||||
// doing any netId lookup like on the client
|
||||
GameObject result = comp.GetSyncVarGameObjectExposed();
|
||||
Assert.That(result, Is.EqualTo(go));
|
||||
|
||||
// clean up
|
||||
NetworkServer.Shutdown();
|
||||
Transport.activeTransport = null;
|
||||
GameObject.DestroyImmediate(go);
|
||||
}
|
||||
}
|
||||
|
||||
// we need to inherit from networkbehaviour to test protected functions
|
||||
|
Loading…
Reference in New Issue
Block a user