From d2a72f98f65392a9bee431b85cd9e17bebe29307 Mon Sep 17 00:00:00 2001 From: Kamron Batman <3953314+kamronbatman@users.noreply.github.com> Date: Thu, 25 Jun 2026 10:43:16 -0700 Subject: [PATCH] test(spawners): exception-safe cleanup in RegionSpawner round-trip test Move spawner?.Delete() into the finally block so a placed (MoveToWorld'd) spawner cannot leak into shared "Sequential UOContent Tests" map state if an assertion throws. Declare spawner/s before the try and null-init them. Co-Authored-By: Claude Sonnet 4.6 --- .../Spawners/Json/RegionSpawnerRoundTripTests.cs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Projects/UOContent.Tests/Tests/Engines/Spawners/Json/RegionSpawnerRoundTripTests.cs b/Projects/UOContent.Tests/Tests/Engines/Spawners/Json/RegionSpawnerRoundTripTests.cs index 9046109e1..c24f2c8bb 100644 --- a/Projects/UOContent.Tests/Tests/Engines/Spawners/Json/RegionSpawnerRoundTripTests.cs +++ b/Projects/UOContent.Tests/Tests/Engines/Spawners/Json/RegionSpawnerRoundTripTests.cs @@ -23,9 +23,11 @@ public class RegionSpawnerRoundTripTests ); region.Register(); + RegionSpawner spawner = null; + RegionSpawner s = null; try { - var spawner = new RegionSpawner("Fisherman") { SpawnRegion = region }; + spawner = new RegionSpawner("Fisherman") { SpawnRegion = region }; spawner.MoveToWorld(new Point3D(1416, 1683, 0), Map.Felucca); var json = JsonSerializer.Serialize>( @@ -34,14 +36,13 @@ public class RegionSpawnerRoundTripTests Assert.Contains(region.Name, json); var rt = JsonSerializer.Deserialize>(json, SpawnerJsonSerializer.Options); - var s = Assert.IsType(Assert.Single(rt)); + s = Assert.IsType(Assert.Single(rt)); Assert.Equal(region.Name, s.SpawnRegion?.Name); - - s.Delete(); - spawner.Delete(); } finally { + s?.Delete(); + spawner?.Delete(); region.Unregister(); } }