diff --git a/Assets/Tests/EditMode/Campaign/CampaignConfigCoverageTests.cs b/Assets/Tests/EditMode/Campaign/CampaignConfigCoverageTests.cs index e4989c3..7cc5328 100644 --- a/Assets/Tests/EditMode/Campaign/CampaignConfigCoverageTests.cs +++ b/Assets/Tests/EditMode/Campaign/CampaignConfigCoverageTests.cs @@ -5,8 +5,8 @@ using UnityEngine.TestTools; /// /// Cobertura de las ramas de error de CampaignConfig.LoadFromJson: /// JSON válido sin capítulos y JSON malformado (excepción de parseo). -/// Nota: CreateInstance dispara OnEnable → LoadFromJson sin fuente, que -/// loguea Error; por eso el flag de logs se activa antes de instanciar. +/// Nota: CreateInstance dispara OnEnable pero es silencioso cuando no +/// hay fuente JSON asignada. /// [TestFixture] [Category("Unit")] @@ -22,9 +22,8 @@ public class CampaignConfigCoverageTests private CampaignConfig CreateUnloadedConfig() { - // CreateInstance dispara OnEnable → LoadFromJson sin fuente (Error): - // se espera explícitamente porque ignoreFailingMessages en SetUp no persiste. - LogAssert.Expect(LogType.Error, "[CampaignConfig] No se asignó archivo JSON de campaña."); + // CreateInstance dispara OnEnable → LoadFromJson sin fuente. + // OnEnable es silencioso cuando no hay fuente asignada (sin error log). return ScriptableObject.CreateInstance(); } diff --git a/Assets/Tests/EditMode/Campaign/CampaignManagerConfigTests.cs b/Assets/Tests/EditMode/Campaign/CampaignManagerConfigTests.cs index 113ffa6..a8f0c01 100644 --- a/Assets/Tests/EditMode/Campaign/CampaignManagerConfigTests.cs +++ b/Assets/Tests/EditMode/Campaign/CampaignManagerConfigTests.cs @@ -40,8 +40,7 @@ namespace AjedrezPurgatorio.Tests.Unit.Campaign // Carga el registry desde Resources/Campaigns igual que Awake, // pero sin singleton ni DontDestroyOnLoad (incompatibles con EditMode). - // Sin _campaignConfig asignado, LoadFromJson registra un error esperado. - LogAssert.Expect(LogType.Error, "[CampaignConfig] No se asignó archivo JSON de campaña."); + // OnEnable es silencioso cuando no hay fuente JSON asignada. _buildRegistryMethod.Invoke(_manager, null); } @@ -68,8 +67,6 @@ namespace AjedrezPurgatorio.Tests.Unit.Campaign int countAfterFirstBuild = _manager.CampaignCount; // BuildCampaignRegistry limpia y reconstruye; los duplicados se descartan. - // El rebuild repite el log de config sin JSON (el Expect del SetUp ya se consumió). - LogAssert.Expect(LogType.Error, "[CampaignConfig] No se asignó archivo JSON de campaña."); _buildRegistryMethod.Invoke(_manager, null); Assert.AreEqual(countAfterFirstBuild, _manager.CampaignCount, diff --git a/Assets/Tests/EditMode/Campaign/CampaignManagerCoverageTests.cs b/Assets/Tests/EditMode/Campaign/CampaignManagerCoverageTests.cs index fc3cccb..e281de8 100644 --- a/Assets/Tests/EditMode/Campaign/CampaignManagerCoverageTests.cs +++ b/Assets/Tests/EditMode/Campaign/CampaignManagerCoverageTests.cs @@ -70,8 +70,8 @@ public class CampaignManagerCoverageTests private CampaignConfig MakeConfigFromJson(string json) { - // CreateInstance dispara OnEnable → LoadFromJson sin fuente (Error esperado). - LogAssert.Expect(LogType.Error, "[CampaignConfig] No se asignó archivo JSON de campaña."); + // CreateInstance dispara OnEnable → LoadFromJson sin fuente. + // OnEnable es silencioso cuando no hay fuente JSON asignada. var config = ScriptableObject.CreateInstance(); config.SetJsonSource(new TextAsset(json)); config.LoadFromJson(); @@ -96,8 +96,8 @@ public class CampaignManagerCoverageTests typeof(CampaignManager).GetField("_campaignConfig", Flags) .SetValue(_manager, inspectorConfig); - // La config del Inspector se añade SIN log (línea 165-166); los - // recursos de Resources sí emiten Error (OnEnable) + Log (registro). + // La config del Inspector se añade SIN log; los recursos de + // Resources se registran al BuildCampaignRegistry (OnEnable silencioso). LogAssert.ignoreFailingMessages = true; InvokePrivate("BuildCampaignRegistry"); LogAssert.ignoreFailingMessages = false; diff --git a/Assets/Tests/EditMode/Meta/SaveSystemCoverageTests.cs b/Assets/Tests/EditMode/Meta/SaveSystemCoverageTests.cs index 9ebe283..9f64a3c 100644 --- a/Assets/Tests/EditMode/Meta/SaveSystemCoverageTests.cs +++ b/Assets/Tests/EditMode/Meta/SaveSystemCoverageTests.cs @@ -293,7 +293,19 @@ namespace AjedrezPurgatorio.Tests.Unit.Meta { LogAssert.ignoreFailingMessages = false; } - Assert.IsFalse(result, "Borrar un archivo bloqueado debe fallar controlado."); + + // Linux file locking is advisory — File.Delete may succeed. + if (Application.platform == RuntimePlatform.LinuxEditor || + Application.platform == RuntimePlatform.LinuxPlayer) + { + Assert.IsTrue(result, + "Linux: File.Delete succeeds despite FileShare.None (advisory locking)."); + } + else + { + Assert.IsFalse(result, + "Windows: Borrar un archivo bloqueado debe fallar controlado."); + } } }