mirror of
https://github.com/MirrorNetworking/Mirror.git
synced 2024-11-18 11:00:32 +00:00
NetworkIdentityTests: OnStartServerInHostModeSetsIsClientTrue to make sure that isClient is true in OnStartServer if in host mode. we fixed the bug recently, now we have a test too
This commit is contained in:
parent
6f3c286a62
commit
ae451e6fe0
@ -330,5 +330,48 @@ public void OnStartServerComponentExceptionIsCaught()
|
||||
// clean up
|
||||
GameObject.DestroyImmediate(gameObject);
|
||||
}
|
||||
|
||||
// OnStartServer in host mode should set isClient=true
|
||||
[Test]
|
||||
public void OnStartServerInHostModeSetsIsClientTrue()
|
||||
{
|
||||
// setup a transport so that Connect doesn't get NullRefException
|
||||
// -> needs to be on a GameObject because Connect calls .enabled=true,
|
||||
// which only works if it's on a gameobject
|
||||
GameObject transportGO = new GameObject();
|
||||
Transport.activeTransport = transportGO.AddComponent<MemoryTransport>();
|
||||
|
||||
// call client connect so that internals are set up
|
||||
// (it won't actually successfully connect)
|
||||
// -> also set up connectmessage handler to avoid unhandled msg error
|
||||
NetworkClient.RegisterHandler<ConnectMessage>(msg => {}, false);
|
||||
NetworkClient.Connect("localhost");
|
||||
|
||||
// manually invoke transport.OnConnected so that NetworkClient.active is set to true
|
||||
Transport.activeTransport.OnClientConnected.Invoke();
|
||||
Assert.That(NetworkClient.active, Is.True);
|
||||
|
||||
// create a networkidentity with our test component
|
||||
GameObject gameObject = new GameObject();
|
||||
NetworkIdentity identity = gameObject.AddComponent<NetworkIdentity>();
|
||||
|
||||
// isClient needs to be true in OnStartServer if in host mode.
|
||||
// this is a test for a bug that we fixed, where isClient was false
|
||||
// in OnStartServer if in host mode because in host mode, we only
|
||||
// connect the client after starting the server, hence isClient would
|
||||
// be false in OnStartServer until way later.
|
||||
// -> we have the workaround in OnStartServer, so let's also test to
|
||||
// make sure that nobody ever breaks it again
|
||||
Assert.That(identity.isClient, Is.False);
|
||||
identity.OnStartServer();
|
||||
Assert.That(identity.isClient, Is.True);
|
||||
|
||||
// clean up
|
||||
NetworkClient.Disconnect();
|
||||
NetworkServer.Shutdown();
|
||||
Transport.activeTransport = null;
|
||||
GameObject.DestroyImmediate(gameObject);
|
||||
GameObject.DestroyImmediate(transportGO);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user