Files
FlowScope/My project/Assets/FlowScope/Tests/EditMode/Resources/ResourceGroupTests.cs
2026-05-18 11:58:49 +08:00

57 lines
1.4 KiB
C#

using FlowScope.Resources;
using NUnit.Framework;
namespace FlowScope.Tests.EditMode.Resources
{
public sealed class ResourceGroupTests
{
[Test]
public void DisposeHandle_ReturnsNullAssetAndReleasesOnce()
{
var releaseCount = 0;
var asset = new TestAsset();
var handle = new ResourceHandle<TestAsset>(
"ui/main",
asset,
(_, _) => releaseCount++);
Assert.AreSame(asset, handle.Asset);
handle.Dispose();
handle.Dispose();
Assert.IsTrue(handle.IsDisposed);
Assert.IsNull(handle.Asset);
Assert.AreEqual(1, releaseCount);
}
[Test]
public void DisposeGroup_DisposesHandlesAndIgnoresDuplicateAdd()
{
var releaseCount = 0;
var handle = new ResourceHandle<TestAsset>(
"ui/main",
new TestAsset(),
(_, _) => releaseCount++);
var group = new ResourceGroup();
group.Add(handle);
group.Add(handle);
Assert.AreEqual(1, group.Count);
group.Dispose();
group.Dispose();
Assert.AreEqual(0, group.Count);
Assert.IsTrue(handle.IsDisposed);
Assert.IsNull(handle.Asset);
Assert.AreEqual(1, releaseCount);
}
private sealed class TestAsset
{
}
}
}