// ============================================================================ // ResourceCacheManagerTests.cs — 缓存管理器单元测试 // Feature: 001-async-resource-loading // ============================================================================ using System.Collections; using NUnit.Framework; using UnityEngine.TestTools; using ProjSG.Resource; [TestFixture] public class ResourceCacheManagerTests { private ResourceCacheManager _cacheManager; [SetUp] public void SetUp() { _cacheManager = ResourceCacheManager.Instance; } [TearDown] public void TearDown() { _cacheManager.ForceReleaseAll(); } // ==================================================================== // 缓存命中 / 未命中 // ==================================================================== [Test] public void GetCached_ReturnsNull_WhenNotCached() { var result = _cacheManager.GetCached("nonexistent/path"); Assert.IsNull(result); } [Test] public void IsCached_ReturnsFalse_WhenNotCached() { Assert.IsFalse(_cacheManager.IsCached("nonexistent/path")); } [Test] public void GetCached_ReturnsNull_WhenNullLocation() { var result = _cacheManager.GetCached(null); Assert.IsNull(result); } [Test] public void GetCached_ReturnsNull_WhenEmptyLocation() { var result = _cacheManager.GetCached(""); Assert.IsNull(result); } [Test] public void IsCached_ReturnsFalse_WhenNullOrEmpty() { Assert.IsFalse(_cacheManager.IsCached(null)); Assert.IsFalse(_cacheManager.IsCached("")); } // ==================================================================== // 释放 // ==================================================================== [Test] public void Release_DoesNotThrow_WhenLocationNotCached() { Assert.DoesNotThrow(() => _cacheManager.Release("nonexistent/path")); } [Test] public void ReleaseAll_DoesNotThrow_WhenEmpty() { Assert.DoesNotThrow(() => _cacheManager.ReleaseAll()); } [Test] public void ForceReleaseAll_ResetsCachedCount_ToZero() { _cacheManager.ForceReleaseAll(); Assert.AreEqual(0, _cacheManager.CachedCount); } // ==================================================================== // CachedCount // ==================================================================== [Test] public void CachedCount_IsZero_WhenEmpty() { _cacheManager.ForceReleaseAll(); Assert.AreEqual(0, _cacheManager.CachedCount); } }