57 lines
1.4 KiB
C#
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
|
|
{
|
|
}
|
|
}
|
|
}
|