test(pool): 拆分 ObjectPoolTests 池化辅助类型

- 拆分 TestObjectPool 与 TestPoolableObject 到 Pool 同目录独立文件

- 保留并补充对象池测试辅助类型的 XML 文档与命名空间一致性

- 验证 GFramework.Core.Tests Release 构建通过且当前切片无新增 warning
This commit is contained in:
gewuyou 2026-04-27 19:07:30 +08:00
parent 0b96f01769
commit 3843e5c1dd
3 changed files with 85 additions and 80 deletions

View File

@ -1,5 +1,3 @@
using GFramework.Core.Abstractions.Pool;
using GFramework.Core.Pool;
using NUnit.Framework;
namespace GFramework.Core.Tests.Pool;
@ -285,81 +283,3 @@ public class ObjectPoolTests
Assert.That(_pool.GetActiveCount("key2"), Is.EqualTo(0));
}
}
/// <summary>
/// 测试用对象池实现类继承自AbstractObjectPoolSystem
/// </summary>
public class TestObjectPool : AbstractObjectPoolSystem<string, TestPoolableObject>
{
/// <summary>
/// 创建新的池化对象
/// </summary>
/// <param name="key">用于标识对象的键</param>
/// <returns>新创建的TestPoolableObject实例</returns>
protected override TestPoolableObject Create(string key)
{
return new TestPoolableObject { PoolKey = key };
}
/// <summary>
/// 初始化方法,用于对象池初始化时的操作
/// </summary>
protected override void OnInit()
{
}
}
/// <summary>
/// 测试用池化对象类实现了IPoolableObject接口
/// </summary>
public class TestPoolableObject : IPoolableObject
{
/// <summary>
/// 获取或设置对象的池键
/// </summary>
public string PoolKey { get; set; } = string.Empty;
/// <summary>
/// 获取或设置测试用的整数值
/// </summary>
public int TestValue { get; set; }
/// <summary>
/// 获取或设置OnAcquire方法是否被调用的标志
/// </summary>
public bool OnAcquireCalled { get; set; }
/// <summary>
/// 获取或设置OnRelease方法是否被调用的标志
/// </summary>
public bool OnReleaseCalled { get; set; }
/// <summary>
/// 获取或设置OnPoolDestroy方法是否被调用的标志
/// </summary>
public bool OnPoolDestroyCalled { get; set; }
/// <summary>
/// 对象被获取时的回调方法
/// </summary>
public void OnAcquire()
{
OnAcquireCalled = true;
}
/// <summary>
/// 对象被释放时的回调方法
/// </summary>
public void OnRelease()
{
OnReleaseCalled = true;
}
/// <summary>
/// 对象被销毁时的回调方法
/// </summary>
public void OnPoolDestroy()
{
OnPoolDestroyCalled = true;
}
}

View File

@ -0,0 +1,27 @@
using GFramework.Core.Pool;
namespace GFramework.Core.Tests.Pool;
/// <summary>
/// 测试用对象池实现类,继承自 <see cref="AbstractObjectPoolSystem{TKey,TValue}" />
/// 用于验证对象池的获取、释放和统计行为。
/// </summary>
public class TestObjectPool : AbstractObjectPoolSystem<string, TestPoolableObject>
{
/// <summary>
/// 根据池键创建新的测试对象。
/// </summary>
/// <param name="key">用于标识对象所属池的键。</param>
/// <returns>带有对应 <paramref name="key" /> 的测试对象实例。</returns>
protected override TestPoolableObject Create(string key)
{
return new TestPoolableObject { PoolKey = key };
}
/// <summary>
/// 执行对象池初始化。
/// </summary>
protected override void OnInit()
{
}
}

View File

@ -0,0 +1,58 @@
using GFramework.Core.Abstractions.Pool;
namespace GFramework.Core.Tests.Pool;
/// <summary>
/// 供对象池测试使用的池化对象,记录生命周期回调是否被触发。
/// </summary>
public class TestPoolableObject : IPoolableObject
{
/// <summary>
/// 获取或设置对象所属的池键。
/// </summary>
public string PoolKey { get; set; } = string.Empty;
/// <summary>
/// 获取或设置测试中写入的整数值。
/// </summary>
public int TestValue { get; set; }
/// <summary>
/// 获取或设置对象获取回调是否已执行。
/// </summary>
public bool OnAcquireCalled { get; set; }
/// <summary>
/// 获取或设置对象释放回调是否已执行。
/// </summary>
public bool OnReleaseCalled { get; set; }
/// <summary>
/// 获取或设置对象销毁回调是否已执行。
/// </summary>
public bool OnPoolDestroyCalled { get; set; }
/// <summary>
/// 在对象被对象池取出时记录回调执行状态。
/// </summary>
public void OnAcquire()
{
OnAcquireCalled = true;
}
/// <summary>
/// 在对象被归还到对象池时记录回调执行状态。
/// </summary>
public void OnRelease()
{
OnReleaseCalled = true;
}
/// <summary>
/// 在对象因容量限制或清池而销毁时记录回调执行状态。
/// </summary>
public void OnPoolDestroy()
{
OnPoolDestroyCalled = true;
}
}