yyl
10 天以前 51b0f6ed9f4e1d3bb6f8144470b46908c7699a96
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
// ============================================================================
// 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);
    }
}