1
0

ReconnectTest.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using Robust.Client.Console;
  2. using Robust.Shared.Network;
  3. namespace Content.IntegrationTests.Tests.Networking
  4. {
  5. [TestFixture]
  6. public sealed class ReconnectTest
  7. {
  8. [Test]
  9. public async Task Test()
  10. {
  11. await using var pair = await PoolManager.GetServerClient(new PoolSettings { Connected = true });
  12. var server = pair.Server;
  13. var client = pair.Client;
  14. var host = client.ResolveDependency<IClientConsoleHost>();
  15. var netManager = client.ResolveDependency<IClientNetManager>();
  16. await client.WaitPost(() => host.ExecuteCommand("disconnect"));
  17. // Run some ticks for the disconnect to complete and such.
  18. await pair.RunTicksSync(5);
  19. await Task.WhenAll(client.WaitIdleAsync(), server.WaitIdleAsync());
  20. // Reconnect.
  21. client.SetConnectTarget(server);
  22. await client.WaitPost(() => netManager.ClientConnect(null, 0, null));
  23. // Run some ticks for the handshake to complete and such.
  24. await pair.RunTicksSync(10);
  25. await Task.WhenAll(client.WaitIdleAsync(), server.WaitIdleAsync());
  26. await pair.CleanReturnAsync();
  27. }
  28. }
  29. }