diff --git a/Libraries/SPTarkov.Server.Core/Services/LocationLifecycleService.cs b/Libraries/SPTarkov.Server.Core/Services/LocationLifecycleService.cs
index c3b1e3c4..7e08464d 100644
--- a/Libraries/SPTarkov.Server.Core/Services/LocationLifecycleService.cs
+++ b/Libraries/SPTarkov.Server.Core/Services/LocationLifecycleService.cs
@@ -66,7 +66,7 @@ public class LocationLifecycleService(
///
/// string
/// bool
- protected bool IsSide(string playerSide, string sideCheck = Pmc)
+ protected internal bool IsSide(string playerSide, string sideCheck = Pmc)
{
return string.Equals(playerSide, sideCheck, StringComparison.OrdinalIgnoreCase);
}
diff --git a/Testing/UnitTests/Tests/Services/LocationLifecycleServiceTests.cs b/Testing/UnitTests/Tests/Services/LocationLifecycleServiceTests.cs
index 3f4f990e..c3874775 100644
--- a/Testing/UnitTests/Tests/Services/LocationLifecycleServiceTests.cs
+++ b/Testing/UnitTests/Tests/Services/LocationLifecycleServiceTests.cs
@@ -1,63 +1,39 @@
-using System.Reflection;
-using System.Runtime.Serialization;
using NUnit.Framework;
-using SPTarkov.Server.Core.Generators;
-using SPTarkov.Server.Core.Helpers;
-using SPTarkov.Server.Core.Models.Utils;
-using SPTarkov.Server.Core.Servers;
using SPTarkov.Server.Core.Services;
-using SPTarkov.Server.Core.Utils;
-using SPTarkov.Server.Core.Utils.Cloners;
namespace UnitTests.Tests.Services;
[TestFixture]
public class LocationLifecycleServiceTests
{
- // Note: The service has a heavy constructor with many DI deps. For testing the protected IsSide method,
- // we bypass construction entirely and invoke the method via reflection.
+ private LocationLifecycleService _locationLifecycle;
- private static bool InvokeIsSide(object instance, string playerSide, string sideCheck)
+ [OneTimeSetUp]
+ public void Initialize()
{
- var mi = typeof(LocationLifecycleService).GetMethod("IsSide", BindingFlags.Instance | BindingFlags.NonPublic);
- Assert.IsNotNull(mi, "Could not find protected method IsSide via reflection");
-
- var result = mi!.Invoke(instance, new object[] { playerSide, sideCheck });
- return result is bool b && b;
- }
-
- private static LocationLifecycleService CreateUninitializedService()
- {
- // Skips running the heavy ctor and DI; safe for IsSide which only compares strings
- return (LocationLifecycleService)FormatterServices.GetUninitializedObject(typeof(LocationLifecycleService));
+ _locationLifecycle = DI.GetInstance().GetService();
}
[Test]
public void IsSide_ReturnsTrue_ForPmc_DefaultCheck_IsCaseInsensitive()
{
- var svc = CreateUninitializedService();
-
// Default side is "pmc"; ensure case-insensitive match works
- Assert.IsTrue(InvokeIsSide(svc, "PMC", "pmc"));
- Assert.IsTrue(InvokeIsSide(svc, "pmc", "pmc"));
+ Assert.IsTrue(_locationLifecycle.IsSide("PMC", "pmc"));
+ Assert.IsTrue(_locationLifecycle.IsSide("pmc", "pmc"));
}
[Test]
public void IsSide_ReturnsFalse_ForNonMatchingSide()
{
- var svc = CreateUninitializedService();
-
- Assert.IsFalse(InvokeIsSide(svc, "savage", "pmc"));
- Assert.IsFalse(InvokeIsSide(svc, "beAr", "pmc"));
+ Assert.IsFalse(_locationLifecycle.IsSide("savage", "pmc"));
+ Assert.IsFalse(_locationLifecycle.IsSide("beAr", "pmc"));
}
[Test]
public void IsSide_ReturnsTrue_WhenCheckingScavAgainstSavage_IsCaseInsensitive()
{
- var svc = CreateUninitializedService();
-
// In code, scav side string used for extracts is "savage"
- Assert.IsTrue(InvokeIsSide(svc, "SAVAGE", "savage"));
- Assert.IsTrue(InvokeIsSide(svc, "savage", "savage"));
+ Assert.IsTrue(_locationLifecycle.IsSide("SAVAGE", "savage"));
+ Assert.IsTrue(_locationLifecycle.IsSide("savage", "savage"));
}
}