using GFramework.Core.Abstractions.architecture;
using GFramework.Core.Abstractions.enums;
using GFramework.Core.Abstractions.model;
namespace GFramework.Core.Tests.model;
///
/// 异步测试模型类,实现了IModel和IAsyncInitializable接口
///
public sealed class AsyncTestModel : IModel, IAsyncInitializable
{
private IArchitectureContext _context = null!;
///
/// 获取模型是否已初始化的标志
///
public bool Initialized { get; private set; }
///
/// 异步初始化方法,模拟异步初始化过程
///
/// 表示异步操作的Task
public async Task InitializeAsync()
{
await Task.Delay(10);
Initialized = true;
}
///
/// 同步初始化方法,该方法不应该被调用
///
/// 当该方法被调用时抛出异常
public void Init()
{
// sync Init 不应该被调用
throw new InvalidOperationException("Sync Init should not be called");
}
///
/// 设置架构上下文
///
/// 架构上下文对象
public void SetContext(IArchitectureContext context)
{
_context = context;
}
///
/// 获取架构上下文
///
/// 架构上下文对象
public IArchitectureContext GetContext()
{
return _context;
}
///
/// 处理架构阶段事件
///
/// 架构阶段枚举值
public void OnArchitecturePhase(ArchitecturePhase phase)
{
}
}