// ============================================================================
|
// 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<UnityEngine.Texture2D>("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<UnityEngine.Texture2D>(null);
|
Assert.IsNull(result);
|
}
|
|
[Test]
|
public void GetCached_ReturnsNull_WhenEmptyLocation()
|
{
|
var result = _cacheManager.GetCached<UnityEngine.Texture2D>("");
|
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);
|
}
|
}
|