GFramework/GFramework.Core.Tests/Utility/TestContextUtilityV1.cs
gewuyou fbf8f9f0a2 fix(core-tests): 收敛PR298的nitpick问题
- 修复测试辅助类型的只读暴露、空安全和线程安全问题

- 更新异步查询结果命名与init属性XML文档,保持语义一致

- 同步ai-plan恢复点与验证真值,记录PR298 nitpick跟进
2026-04-27 20:18:58 +08:00

61 lines
1.9 KiB
C#

using GFramework.Core.Abstractions.Logging;
using GFramework.Core.Utility;
namespace GFramework.Core.Tests.Utility;
/// <summary>
/// 为 <see cref="AbstractContextUtilityTests" /> 提供的基础上下文工具测试桩。
/// </summary>
public sealed class TestContextUtilityV1 : AbstractContextUtility
{
/// <summary>
/// 获取一个值,该值指示当前工具是否已完成初始化。
/// </summary>
public bool Initialized { get; private set; }
/// <summary>
/// 获取一个值,该值指示当前工具是否已执行销毁逻辑。
/// </summary>
public bool Destroyed { get; private set; }
/// <summary>
/// 获取一个值,该值指示测试专用的 <see cref="OnInit" /> 钩子是否已被调用。
/// 该标记与 <see cref="Initialized" /> 共享同一执行时机,但单独暴露以便断言钩子本身已运行。
/// </summary>
public bool InitCalled { get; private set; }
/// <summary>
/// 获取初始化阶段创建的日志记录器,供测试断言使用。
/// </summary>
/// <returns>初始化后缓存的日志记录器;初始化前返回 <see langword="null" />。</returns>
public ILogger? GetLogger()
{
return Logger;
}
/// <summary>
/// 记录初始化已发生,并标记测试钩子调用状态。
/// </summary>
protected override void OnInit()
{
Initialized = true;
InitCalled = true;
}
/// <summary>
/// 记录销毁流程已运行,供生命周期测试断言使用。
/// </summary>
protected override void OnDestroy()
{
Destroyed = true;
}
/// <summary>
/// 重置销毁标记,供同一实例的重复生命周期测试在下一轮初始化前清理观测状态。
/// </summary>
public void ResetDestroyedStateForTest()
{
Destroyed = false;
}
}