diff --git a/Content.IntegrationTests/Tests/GameRules/StartEndGameRulesTest.cs b/Content.IntegrationTests/Tests/GameRules/StartEndGameRulesTest.cs index 6f6965fea2..f1a61a9e45 100644 --- a/Content.IntegrationTests/Tests/GameRules/StartEndGameRulesTest.cs +++ b/Content.IntegrationTests/Tests/GameRules/StartEndGameRulesTest.cs @@ -1,32 +1,38 @@ -using System.Linq; +using System; +using System.Linq; using System.Threading.Tasks; using Content.Server.GameTicking; using Content.Server.GameTicking.Rules; using NUnit.Framework; using Robust.Shared.GameObjects; -using Robust.Shared.IoC; using Robust.Shared.Prototypes; namespace Content.IntegrationTests.Tests.GameRules; -/// -/// Tests that all game rules can be added/started/ended at the same time without exceptions. -/// + [TestFixture] public sealed class StartEndGameRulesTest { + /// + /// Tests that all game rules can be added/started/ended at the same time without exceptions. + /// [Test] - public async Task Test() + public async Task TestAllConcurrent() { - await using var pairTracker = await PoolManager.GetServerClient(new PoolSettings(){Dirty = true}); + await using var pairTracker = await PoolManager.GetServerClient(new PoolSettings() + { + NoClient = true, + Dirty = true, + }); var server = pairTracker.Pair.Server; + await server.WaitIdleAsync(); + var protoMan = server.ResolveDependency(); + var gameTicker = server.ResolveDependency().GetEntitySystem(); await server.WaitAssertion(() => { - var gameTicker = EntitySystem.Get(); - var protoMan = IoCManager.Resolve(); - - var rules = protoMan.EnumeratePrototypes().ToArray(); + var rules = protoMan.EnumeratePrototypes().ToList(); + rules.Sort((x, y) => string.Compare(x.ID, y.ID, StringComparison.Ordinal)); // Start all rules foreach (var rule in rules) @@ -34,7 +40,7 @@ public sealed class StartEndGameRulesTest gameTicker.StartGameRule(rule); } - Assert.That(gameTicker.AddedGameRules.Count == rules.Length); + Assert.That(gameTicker.AddedGameRules, Has.Count.EqualTo(rules.Count)); }); // Wait three ticks for any random update loops that might happen @@ -42,8 +48,6 @@ public sealed class StartEndGameRulesTest await server.WaitAssertion(() => { - var gameTicker = EntitySystem.Get(); - // End all rules gameTicker.ClearGameRules(); Assert.That(!gameTicker.AddedGameRules.Any());