From cbf556c09c9e38d126f65f70a18c6a057b0c7c43 Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Sat, 11 Mar 2023 12:48:57 +1100 Subject: [PATCH] Maybe fix an old heisenbug test (#14579) --- .../Tests/MindEntityDeletionTest.cs | 57 +++++++++++++------ 1 file changed, 39 insertions(+), 18 deletions(-) diff --git a/Content.IntegrationTests/Tests/MindEntityDeletionTest.cs b/Content.IntegrationTests/Tests/MindEntityDeletionTest.cs index f760c86a9f..93c5fe41f1 100644 --- a/Content.IntegrationTests/Tests/MindEntityDeletionTest.cs +++ b/Content.IntegrationTests/Tests/MindEntityDeletionTest.cs @@ -23,17 +23,18 @@ namespace Content.IntegrationTests.Tests var server = pairTracker.Pair.Server; var entMan = server.ResolveDependency(); + var playerMan = server.ResolveDependency(); + var mapManager = server.ResolveDependency(); + EntityUid playerEnt = default; EntityUid visitEnt = default; Mind mind = null; + var map = await PoolManager.CreateTestMap(pairTracker); + await server.WaitAssertion(() => { - var player = IoCManager.Resolve().ServerSessions.Single(); - - var mapMan = IoCManager.Resolve(); - - var mapId = mapMan.GetAllMapIds().Last(); - var pos = new MapCoordinates(Vector2.Zero, mapId); + var player = playerMan.ServerSessions.Single(); + var pos = new MapCoordinates(Vector2.Zero, map.MapId); playerEnt = entMan.SpawnEntity(null, pos); visitEnt = entMan.SpawnEntity(null, pos); @@ -47,6 +48,7 @@ namespace Content.IntegrationTests.Tests Assert.That(player.AttachedEntity, Is.EqualTo(visitEnt)); Assert.That(mind.VisitingEntity, Is.EqualTo(visitEnt)); }); + await PoolManager.RunTicksSync(pairTracker.Pair, 5); await server.WaitAssertion(() => @@ -67,8 +69,14 @@ namespace Content.IntegrationTests.Tests // This used to throw so make sure it doesn't. entMan.DeleteEntity(playerEnt); }); + await PoolManager.RunTicksSync(pairTracker.Pair, 5); + await server.WaitPost(() => + { + mapManager.DeleteMap(map.MapId); + }); + await pairTracker.CleanReturnAsync(); } @@ -81,16 +89,17 @@ namespace Content.IntegrationTests.Tests var server = pairTracker.Pair.Server; var entMan = server.ResolveDependency(); + var playerMan = server.ResolveDependency(); + var mapManager = server.ResolveDependency(); + var map = await PoolManager.CreateTestMap(pairTracker); + EntityUid playerEnt = default; Mind mind = null; await server.WaitAssertion(() => { - var player = IoCManager.Resolve().ServerSessions.Single(); + var player = playerMan.ServerSessions.Single(); - var mapMan = IoCManager.Resolve(); - - var mapId = mapMan.GetAllMapIds().Last(); - var pos = new MapCoordinates(Vector2.Zero, mapId); + var pos = new MapCoordinates(Vector2.Zero, map.MapId); playerEnt = entMan.SpawnEntity(null, pos); @@ -116,6 +125,11 @@ namespace Content.IntegrationTests.Tests Assert.That(entMan.EntityExists(mind.CurrentEntity!.Value), Is.True); }); + await server.WaitPost(() => + { + mapManager.DeleteMap(map.MapId); + }); + await pairTracker.CleanReturnAsync(); } @@ -127,15 +141,18 @@ namespace Content.IntegrationTests.Tests var testMap = await PoolManager.CreateTestMap(pairTracker); var coordinates = testMap.GridCoords; + var entMan = server.ResolveDependency(); + var playerMan = server.ResolveDependency(); + var mapManager = server.ResolveDependency(); + var map = await PoolManager.CreateTestMap(pairTracker); + EntityUid playerEnt = default; Mind mind = null; await server.WaitAssertion(() => { - var player = IoCManager.Resolve().ServerSessions.Single(); + var player = playerMan.ServerSessions.Single(); - var mapMan = IoCManager.Resolve(); - var entMgr = IoCManager.Resolve(); - playerEnt = entMgr.SpawnEntity(null, coordinates); + playerEnt = entMan.SpawnEntity(null, coordinates); mind = new Mind(player.UserId); mind.ChangeOwningPlayer(player.UserId); @@ -148,18 +165,22 @@ namespace Content.IntegrationTests.Tests await server.WaitPost(() => { - var mapMan = IoCManager.Resolve(); - mapMan.DeleteMap(testMap.MapId); + mapManager.DeleteMap(testMap.MapId); }); await PoolManager.RunTicksSync(pairTracker.Pair, 5); await server.WaitAssertion(() => { - Assert.That(IoCManager.Resolve().EntityExists(mind.CurrentEntity!.Value), Is.True); + Assert.That(entMan.EntityExists(mind.CurrentEntity!.Value), Is.True); Assert.That(mind.CurrentEntity, Is.Not.EqualTo(playerEnt)); }); + await server.WaitPost(() => + { + mapManager.DeleteMap(map.MapId); + }); + await pairTracker.CleanReturnAsync(); } }