GFramework/GFramework.Core.Tests/architecture/AsyncTestArchitecture.cs
GwWuYou 78da01878b test(architecture): 添加异步架构测试并重构测试基类
- 创建 AsyncTestArchitecture 类用于异步测试
- 添加 AsyncTestSystem 实现异步初始化系统
- 创建 ArchitectureTestsBase 基类统一同步异步测试逻辑
- 实现 AsyncArchitectureTests 异步架构测试用例
- 将同步测试重构为继承自 ArchitectureTestsBase
- 移除重复的测试方法实现
- 重命名模型初始化状态属性为 Initialized
2026-01-02 10:53:55 +08:00

55 lines
1.4 KiB
C#

using GFramework.Core.Abstractions.enums;
using GFramework.Core.architecture;
using GFramework.Core.events;
using GFramework.Core.Tests.model;
using GFramework.Core.Tests.system;
namespace GFramework.Core.Tests.architecture;
/// <summary>
/// 异步测试架构,用于测试异步模型和系统的初始化
/// </summary>
public class AsyncTestArchitecture : Architecture
{
/// <summary>
/// 初始化完成事件是否触发
/// </summary>
public bool ReadyEventFired { get; private set; }
/// <summary>
/// Init 方法是否调用
/// </summary>
public bool InitCalled { get; private set; }
/// <summary>
/// 阶段进入记录
/// </summary>
public List<ArchitecturePhase> PhaseHistory { get; } = new();
/// <summary>
/// 异步初始化架构
/// </summary>
protected override void Init()
{
InitCalled = true;
// 注册模型
RegisterModel(new AsyncTestModel());
// 注册系统
RegisterSystem(new AsyncTestSystem());
// 订阅 Ready 事件
Context.RegisterEvent<ArchitectureEvents.ArchitectureLifecycleReadyEvent>(_ => { ReadyEventFired = true; });
}
/// <summary>
/// 进入阶段时记录
/// </summary>
/// <param name="next"></param>
protected override void EnterPhase(ArchitecturePhase next)
{
base.EnterPhase(next);
PhaseHistory.Add(next);
}
}