using GFramework.Core.Abstractions.Enums; using GFramework.Core.Architectures; namespace GFramework.Core.Tests.Architectures; /// /// 测试架构基类,提供通用的测试架构功能 /// public abstract class TestArchitectureBase : Architecture { private Action? _postRegistrationHook; /// /// 获取就绪事件是否已触发的状态 /// public bool ReadyEventFired { get; protected set; } /// /// 获取初始化方法是否已调用的状态 /// public bool InitCalled { get; protected set; } /// /// 获取架构阶段历史记录列表 /// public List PhaseHistory { get; } = []; /// /// 添加注册后钩子函数 /// /// 要添加的钩子函数 public void AddPostRegistrationHook(Action hook) { _postRegistrationHook = hook; } /// /// 初始化架构组件,注册模型、系统并设置事件监听器 /// protected override void OnInitialize() { InitCalled = true; _postRegistrationHook?.Invoke(this); // 订阅阶段变更事件以记录历史 PhaseChanged += phase => PhaseHistory.Add(phase); } }