diff --git a/Content.IntegrationTests/ContentIntegrationTest.cs b/Content.IntegrationTests/ContentIntegrationTest.cs index 2b50e5197f..1970ba9ee7 100644 --- a/Content.IntegrationTests/ContentIntegrationTest.cs +++ b/Content.IntegrationTests/ContentIntegrationTest.cs @@ -75,10 +75,28 @@ namespace Content.IntegrationTests } protected async Task<(ClientIntegrationInstance client, ServerIntegrationInstance server)> StartConnectedServerClientPair(ClientIntegrationOptions clientOptions = null, ServerIntegrationOptions serverOptions = null) + { + var client = StartClient(clientOptions); + var server = StartServer(serverOptions); + + await StartConnectedPairShared(client, server); + + return (client, server); + } + + + protected async Task<(ClientIntegrationInstance client, ServerIntegrationInstance server)> StartConnectedServerDummyTickerClientPair(ClientIntegrationOptions clientOptions = null, ServerIntegrationOptions serverOptions = null) { var client = StartClient(clientOptions); var server = StartServerDummyTicker(serverOptions); + await StartConnectedPairShared(client, server); + + return (client, server); + } + + private static async Task StartConnectedPairShared(ClientIntegrationInstance client, ServerIntegrationInstance server) + { await Task.WhenAll(client.WaitIdleAsync(), server.WaitIdleAsync()); client.SetConnectTarget(server); @@ -86,8 +104,6 @@ namespace Content.IntegrationTests client.Post(() => IoCManager.Resolve().ClientConnect(null, 0, null)); await RunTicksSync(client, server, 10); - - return (client, server); } /// diff --git a/Content.IntegrationTests/Tests/Networking/SimplePredictReconcileTest.cs b/Content.IntegrationTests/Tests/Networking/SimplePredictReconcileTest.cs index 93d2db7549..f37fe7215e 100644 --- a/Content.IntegrationTests/Tests/Networking/SimplePredictReconcileTest.cs +++ b/Content.IntegrationTests/Tests/Networking/SimplePredictReconcileTest.cs @@ -37,7 +37,7 @@ namespace Content.IntegrationTests.Tests.Networking { // Initialize client & server with text component and system registered. // They can't be registered/detected automatically. - var (client, server) = await StartConnectedServerClientPair( + var (client, server) = await StartConnectedServerDummyTickerClientPair( new ClientContentIntegrationOption { // This test is designed around specific timing values and when I wrote it interpolation was off. diff --git a/Content.IntegrationTests/Tests/RestartRoundTest.cs b/Content.IntegrationTests/Tests/RestartRoundTest.cs new file mode 100644 index 0000000000..9930a871fe --- /dev/null +++ b/Content.IntegrationTests/Tests/RestartRoundTest.cs @@ -0,0 +1,24 @@ +using System.Threading.Tasks; +using Content.Server.Interfaces.GameTicking; +using NUnit.Framework; +using Robust.Shared.IoC; + +namespace Content.IntegrationTests.Tests +{ + [TestFixture] + public class RestartRoundTest : ContentIntegrationTest + { + [Test] + public async Task Test() + { + var (client, server) = await StartConnectedServerClientPair(); + + server.Post(() => + { + IoCManager.Resolve().RestartRound(); + }); + + await RunTicksSync(client, server, 10); + } + } +}