diff --git a/GFramework.Core.Abstractions/architecture/IArchitectureContext.cs b/GFramework.Core.Abstractions/architecture/IArchitectureContext.cs
index 6f4ba1e..760f7cb 100644
--- a/GFramework.Core.Abstractions/architecture/IArchitectureContext.cs
+++ b/GFramework.Core.Abstractions/architecture/IArchitectureContext.cs
@@ -1,5 +1,3 @@
-using System;
-using System.Threading.Tasks;
using GFramework.Core.Abstractions.command;
using GFramework.Core.Abstractions.environment;
using GFramework.Core.Abstractions.events;
diff --git a/GFramework.Core.Abstractions/architecture/IAsyncInitializable.cs b/GFramework.Core.Abstractions/architecture/IAsyncInitializable.cs
index 77b0420..49b6cf3 100644
--- a/GFramework.Core.Abstractions/architecture/IAsyncInitializable.cs
+++ b/GFramework.Core.Abstractions/architecture/IAsyncInitializable.cs
@@ -1,6 +1,4 @@
-using System.Threading.Tasks;
-
-namespace GFramework.Core.Abstractions.architecture;
+namespace GFramework.Core.Abstractions.architecture;
///
/// 定义异步初始化接口,用于需要异步初始化的组件或服务
diff --git a/GFramework.Core.Abstractions/bases/IKeyValue.cs b/GFramework.Core.Abstractions/bases/IKeyValue.cs
index ad2fca2..eb3116d 100644
--- a/GFramework.Core.Abstractions/bases/IKeyValue.cs
+++ b/GFramework.Core.Abstractions/bases/IKeyValue.cs
@@ -1,19 +1,19 @@
namespace GFramework.Core.Abstractions.bases;
///
-/// 表示键值对的接口,定义了通用的键值对数据结构契约
+/// 表示键值对的接口,定义了通用的键值对数据结构契约
///
/// 键的类型
/// 值的类型
public interface IKeyValue
{
///
- /// 获取键值对中的键
+ /// 获取键值对中的键
///
TKey Key { get; }
///
- /// 获取键值对中的值
+ /// 获取键值对中的值
///
TValue Value { get; }
}
\ No newline at end of file
diff --git a/GFramework.Core.Abstractions/command/IAsyncCommand.cs b/GFramework.Core.Abstractions/command/IAsyncCommand.cs
index a6ae752..ff094eb 100644
--- a/GFramework.Core.Abstractions/command/IAsyncCommand.cs
+++ b/GFramework.Core.Abstractions/command/IAsyncCommand.cs
@@ -1,28 +1,27 @@
-using System.Threading.Tasks;
using GFramework.Core.Abstractions.rule;
namespace GFramework.Core.Abstractions.command;
///
-/// 表示一个异步命令接口,该命令不返回结果
+/// 表示一个异步命令接口,该命令不返回结果
///
public interface IAsyncCommand : IContextAware
{
///
- /// 异步执行命令
+ /// 异步执行命令
///
/// 表示异步操作的任务
Task ExecuteAsync();
}
///
-/// 表示一个异步命令接口,该命令返回指定类型的结果
+/// 表示一个异步命令接口,该命令返回指定类型的结果
///
/// 命令执行结果的类型
public interface IAsyncCommand : IContextAware
{
///
- /// 异步执行命令并返回结果
+ /// 异步执行命令并返回结果
///
/// 表示异步操作的任务,任务结果为命令执行的返回值
Task ExecuteAsync();
diff --git a/GFramework.Core.Abstractions/command/ICommandBus.cs b/GFramework.Core.Abstractions/command/ICommandBus.cs
index 15a3568..824ba51 100644
--- a/GFramework.Core.Abstractions/command/ICommandBus.cs
+++ b/GFramework.Core.Abstractions/command/ICommandBus.cs
@@ -1,5 +1,3 @@
-using System.Threading.Tasks;
-
namespace GFramework.Core.Abstractions.command;
///
diff --git a/GFramework.Core.Abstractions/coroutine/CoroutineState.cs b/GFramework.Core.Abstractions/coroutine/CoroutineState.cs
index 0ee6e3c..e9c7c07 100644
--- a/GFramework.Core.Abstractions/coroutine/CoroutineState.cs
+++ b/GFramework.Core.Abstractions/coroutine/CoroutineState.cs
@@ -1,32 +1,32 @@
namespace GFramework.Core.Abstractions.coroutine;
///
-/// 表示协程的执行状态枚举
+/// 表示协程的执行状态枚举
///
public enum CoroutineState
{
///
- /// 协程正在运行中
+ /// 协程正在运行中
///
Running,
///
- /// 协程已暂停
+ /// 协程已暂停
///
Paused,
///
- /// 协程被锁定或等待其他协程完成
+ /// 协程被锁定或等待其他协程完成
///
Held,
///
- /// 协程已完成执行
+ /// 协程已完成执行
///
Completed,
///
- /// 协程已被取消
+ /// 协程已被取消
///
- Cancelled,
+ Cancelled
}
\ No newline at end of file
diff --git a/GFramework.Core.Abstractions/coroutine/ITimeSource.cs b/GFramework.Core.Abstractions/coroutine/ITimeSource.cs
index f15e065..0fa2a03 100644
--- a/GFramework.Core.Abstractions/coroutine/ITimeSource.cs
+++ b/GFramework.Core.Abstractions/coroutine/ITimeSource.cs
@@ -1,22 +1,22 @@
namespace GFramework.Core.Abstractions.coroutine;
///
-/// 时间源接口,提供当前时间、时间增量以及更新功能
+/// 时间源接口,提供当前时间、时间增量以及更新功能
///
public interface ITimeSource
{
///
- /// 获取当前时间
+ /// 获取当前时间
///
double CurrentTime { get; }
///
- /// 获取时间增量(上一帧到当前帧的时间差)
+ /// 获取时间增量(上一帧到当前帧的时间差)
///
double DeltaTime { get; }
///
- /// 更新时间源的状态
+ /// 更新时间源的状态
///
void Update();
}
\ No newline at end of file
diff --git a/GFramework.Core.Abstractions/coroutine/IYieldInstruction.cs b/GFramework.Core.Abstractions/coroutine/IYieldInstruction.cs
index 761a57a..1d75bfe 100644
--- a/GFramework.Core.Abstractions/coroutine/IYieldInstruction.cs
+++ b/GFramework.Core.Abstractions/coroutine/IYieldInstruction.cs
@@ -1,17 +1,17 @@
namespace GFramework.Core.Abstractions.coroutine;
///
-/// 定义一个可等待指令的接口,用于协程系统中的异步操作控制
+/// 定义一个可等待指令的接口,用于协程系统中的异步操作控制
///
public interface IYieldInstruction
{
///
- /// 获取当前等待指令是否已完成执行
+ /// 获取当前等待指令是否已完成执行
///
bool IsDone { get; }
///
- /// 每帧由调度器调用,用于更新当前等待指令的状态
+ /// 每帧由调度器调用,用于更新当前等待指令的状态
///
/// 自上一帧以来的时间间隔(以秒为单位)
void Update(double deltaTime);
diff --git a/GFramework.Core.Abstractions/enums/ArchitecturePhase.cs b/GFramework.Core.Abstractions/enums/ArchitecturePhase.cs
index 93b2aa3..8df1bc9 100644
--- a/GFramework.Core.Abstractions/enums/ArchitecturePhase.cs
+++ b/GFramework.Core.Abstractions/enums/ArchitecturePhase.cs
@@ -15,12 +15,12 @@ public enum ArchitecturePhase
None = 0,
///
- /// 工具类初始化之前阶段
+ /// 工具类初始化之前阶段
///
BeforeUtilityInit,
///
- /// 工具类初始化之后阶段
+ /// 工具类初始化之后阶段
///
AfterUtilityInit,
diff --git a/GFramework.Core.Abstractions/events/IEvent.cs b/GFramework.Core.Abstractions/events/IEvent.cs
index ef66913..cd4e7a3 100644
--- a/GFramework.Core.Abstractions/events/IEvent.cs
+++ b/GFramework.Core.Abstractions/events/IEvent.cs
@@ -1,6 +1,4 @@
-using System;
-
-namespace GFramework.Core.Abstractions.events;
+namespace GFramework.Core.Abstractions.events;
///
/// 事件接口,定义了事件注册的基本功能
diff --git a/GFramework.Core.Abstractions/events/IEventBus.cs b/GFramework.Core.Abstractions/events/IEventBus.cs
index acf94f1..e8beddf 100644
--- a/GFramework.Core.Abstractions/events/IEventBus.cs
+++ b/GFramework.Core.Abstractions/events/IEventBus.cs
@@ -1,9 +1,7 @@
-using System;
-
-namespace GFramework.Core.Abstractions.events;
+namespace GFramework.Core.Abstractions.events;
///
-/// 事件总线接口,提供事件的发送、注册和注销功能
+/// 事件总线接口,提供事件的发送、注册和注销功能
///
public interface IEventBus
{
diff --git a/GFramework.Core.Abstractions/events/IUnRegisterList.cs b/GFramework.Core.Abstractions/events/IUnRegisterList.cs
index d95d4de..970abd0 100644
--- a/GFramework.Core.Abstractions/events/IUnRegisterList.cs
+++ b/GFramework.Core.Abstractions/events/IUnRegisterList.cs
@@ -1,6 +1,4 @@
-using System.Collections.Generic;
-
-namespace GFramework.Core.Abstractions.events;
+namespace GFramework.Core.Abstractions.events;
///
/// 提供统一注销功能的接口,用于管理需要注销的对象列表
diff --git a/GFramework.Core.Abstractions/ioc/IIocContainer.cs b/GFramework.Core.Abstractions/ioc/IIocContainer.cs
index 834303e..17e8702 100644
--- a/GFramework.Core.Abstractions/ioc/IIocContainer.cs
+++ b/GFramework.Core.Abstractions/ioc/IIocContainer.cs
@@ -1,6 +1,4 @@
-using System;
-using System.Collections.Generic;
-using GFramework.Core.Abstractions.rule;
+using GFramework.Core.Abstractions.rule;
using GFramework.Core.Abstractions.system;
namespace GFramework.Core.Abstractions.ioc;
diff --git a/GFramework.Core.Abstractions/logging/ILogger.cs b/GFramework.Core.Abstractions/logging/ILogger.cs
index 0e63de8..185d604 100644
--- a/GFramework.Core.Abstractions/logging/ILogger.cs
+++ b/GFramework.Core.Abstractions/logging/ILogger.cs
@@ -1,6 +1,4 @@
-using System;
-
-namespace GFramework.Core.Abstractions.logging;
+namespace GFramework.Core.Abstractions.logging;
///
/// 定义日志记录接口,提供日志记录和级别检查功能
diff --git a/GFramework.Core.Abstractions/pool/IObjectPoolSystem.cs b/GFramework.Core.Abstractions/pool/IObjectPoolSystem.cs
index 074eba2..c7c8b30 100644
--- a/GFramework.Core.Abstractions/pool/IObjectPoolSystem.cs
+++ b/GFramework.Core.Abstractions/pool/IObjectPoolSystem.cs
@@ -1,7 +1,7 @@
namespace GFramework.Core.Abstractions.pool;
///
-/// 对象池系统接口,定义了对象池的基本操作
+/// 对象池系统接口,定义了对象池的基本操作
///
/// 池键的类型
/// 池中对象的类型,必须实现IPoolableObject接口
@@ -10,21 +10,21 @@ public interface IObjectPoolSystem
where TKey : notnull
{
///
- /// 从对象池中获取一个对象实例
+ /// 从对象池中获取一个对象实例
///
/// 对象池的键
/// 池中的对象实例,如果池中没有可用对象则创建新实例
TObject Acquire(TKey key);
///
- /// 将对象释放回对象池
+ /// 将对象释放回对象池
///
/// 对象池的键
/// 要释放的对象
void Release(TKey key, TObject obj);
///
- /// 清空所有对象池
+ /// 清空所有对象池
///
void Clear();
}
\ No newline at end of file
diff --git a/GFramework.Core.Abstractions/pool/IPoolableObject.cs b/GFramework.Core.Abstractions/pool/IPoolableObject.cs
index fbe0404..acbc5a9 100644
--- a/GFramework.Core.Abstractions/pool/IPoolableObject.cs
+++ b/GFramework.Core.Abstractions/pool/IPoolableObject.cs
@@ -1,22 +1,22 @@
namespace GFramework.Core.Abstractions.pool;
///
-/// 定义可池化对象的接口,提供对象在池中的生命周期管理方法
+/// 定义可池化对象的接口,提供对象在池中的生命周期管理方法
///
public interface IPoolableObject
{
///
- /// 当对象从池中被获取时调用,用于初始化或重置对象状态
+ /// 当对象从池中被获取时调用,用于初始化或重置对象状态
///
void OnAcquire();
///
- /// 当对象被释放回池中时调用,用于清理或重置对象状态以便下次使用
+ /// 当对象被释放回池中时调用,用于清理或重置对象状态以便下次使用
///
void OnRelease();
///
- /// 当对象池被销毁时调用,用于执行最终的清理工作
+ /// 当对象池被销毁时调用,用于执行最终的清理工作
///
void OnPoolDestroy();
}
\ No newline at end of file
diff --git a/GFramework.Core.Abstractions/property/IReadonlyBindableProperty.cs b/GFramework.Core.Abstractions/property/IReadonlyBindableProperty.cs
index e4d86a8..36510fc 100644
--- a/GFramework.Core.Abstractions/property/IReadonlyBindableProperty.cs
+++ b/GFramework.Core.Abstractions/property/IReadonlyBindableProperty.cs
@@ -1,4 +1,3 @@
-using System;
using GFramework.Core.Abstractions.events;
namespace GFramework.Core.Abstractions.property;
diff --git a/GFramework.Core.Abstractions/query/IAsyncQuery.cs b/GFramework.Core.Abstractions/query/IAsyncQuery.cs
index 5574933..202d057 100644
--- a/GFramework.Core.Abstractions/query/IAsyncQuery.cs
+++ b/GFramework.Core.Abstractions/query/IAsyncQuery.cs
@@ -1,15 +1,13 @@
-using System.Threading.Tasks;
-
-namespace GFramework.Core.Abstractions.query;
+namespace GFramework.Core.Abstractions.query;
///
-/// 异步查询接口,定义了执行异步查询操作的方法
+/// 异步查询接口,定义了执行异步查询操作的方法
///
/// 查询结果的类型
public interface IAsyncQuery
{
///
- /// 执行异步查询操作
+ /// 执行异步查询操作
///
/// 返回查询结果的Task,结果类型为TResult
Task DoAsync();
diff --git a/GFramework.Core.Abstractions/query/IAsyncQueryBus.cs b/GFramework.Core.Abstractions/query/IAsyncQueryBus.cs
index 5ba3128..db1700c 100644
--- a/GFramework.Core.Abstractions/query/IAsyncQueryBus.cs
+++ b/GFramework.Core.Abstractions/query/IAsyncQueryBus.cs
@@ -1,14 +1,12 @@
-using System.Threading.Tasks;
-
-namespace GFramework.Core.Abstractions.query;
+namespace GFramework.Core.Abstractions.query;
///
-/// 异步查询总线接口,用于处理异步查询请求
+/// 异步查询总线接口,用于处理异步查询请求
///
public interface IAsyncQueryBus
{
///
- /// 异步发送查询请求并返回结果
+ /// 异步发送查询请求并返回结果
///
/// 查询结果的类型
/// 要执行的异步查询对象
diff --git a/GFramework.Core.Abstractions/registries/IRegistry.cs b/GFramework.Core.Abstractions/registries/IRegistry.cs
index 8c26073..c7fdd39 100644
--- a/GFramework.Core.Abstractions/registries/IRegistry.cs
+++ b/GFramework.Core.Abstractions/registries/IRegistry.cs
@@ -3,34 +3,34 @@
namespace GFramework.Game.Abstractions.registry;
///
-/// 表示一个通用的注册表接口,用于根据键类型T获取值类型TR的对象
+/// 表示一个通用的注册表接口,用于根据键类型T获取值类型TR的对象
///
/// 注册表中用作键的类型
/// 注册表中存储的值的类型
public interface IRegistry
{
///
- /// 根据指定的键获取对应的值
+ /// 根据指定的键获取对应的值
///
/// 用于查找值的键
/// 与指定键关联的值
Tr Get(T key);
///
- /// 检查注册表是否包含指定的键
+ /// 检查注册表是否包含指定的键
///
/// 要检查的键
/// 如果注册表包含具有指定键的元素,则为true;否则为false
bool Contains(T key);
///
- /// 添加一个键值对到注册表中
+ /// 添加一个键值对到注册表中
///
/// 要添加的键值对映射对象
IRegistry Registry(IKeyValue mapping);
///
- /// 添加一个键值对到注册表中
+ /// 添加一个键值对到注册表中
///
/// 要添加的键
/// 要添加的值
diff --git a/GFramework.Core.Abstractions/registries/KeyValueRegistryBase.cs b/GFramework.Core.Abstractions/registries/KeyValueRegistryBase.cs
index f1fb0cc..4046d17 100644
--- a/GFramework.Core.Abstractions/registries/KeyValueRegistryBase.cs
+++ b/GFramework.Core.Abstractions/registries/KeyValueRegistryBase.cs
@@ -1,12 +1,11 @@
-using System.Collections.Generic;
-using GFramework.Core.Abstractions.bases;
+using GFramework.Core.Abstractions.bases;
using GFramework.Game.Abstractions.registry;
namespace GFramework.Core.Abstractions.registries;
///
-/// 基于Dictionary的通用键值注册表基类
-/// 提供基于字典的键值对注册、查询和管理功能
+/// 基于Dictionary的通用键值注册表基类
+/// 提供基于字典的键值对注册、查询和管理功能
///
/// 键的类型
/// 值的类型
@@ -14,12 +13,12 @@ public abstract class KeyValueRegistryBase
: IRegistry
{
///
- /// 存储键值对映射关系的字典
+ /// 存储键值对映射关系的字典
///
protected readonly IDictionary Map;
///
- /// 初始化KeyValueRegistryBase的新实例
+ /// 初始化KeyValueRegistryBase的新实例
///
/// 用于比较键的相等性的比较器,如果为null则使用默认比较器
protected KeyValueRegistryBase(IEqualityComparer? comparer = null)
@@ -29,26 +28,30 @@ public abstract class KeyValueRegistryBase
}
///
- /// 根据指定的键获取对应的值
+ /// 根据指定的键获取对应的值
///
/// 要查找的键
/// 与键关联的值
/// 当键不存在时抛出异常
public virtual TValue Get(TKey key)
- => Map.TryGetValue(key, out var value)
+ {
+ return Map.TryGetValue(key, out var value)
? value
: throw new KeyNotFoundException($"{GetType().Name}: key not registered: {key}");
+ }
///
- /// 判断是否包含指定的键
+ /// 判断是否包含指定的键
///
/// 要检查的键
/// 如果包含该键返回true,否则返回false
public virtual bool Contains(TKey key)
- => Map.ContainsKey(key);
+ {
+ return Map.ContainsKey(key);
+ }
///
- /// 注册键值对到注册表中
+ /// 注册键值对到注册表中
///
/// 要注册的键
/// 要注册的值
@@ -60,10 +63,12 @@ public abstract class KeyValueRegistryBase
}
///
- /// 注册键值对映射对象到注册表中
+ /// 注册键值对映射对象到注册表中
///
/// 包含键值对的映射对象
/// 当前注册表实例,支持链式调用
public virtual IRegistry Registry(IKeyValue mapping)
- => Registry(mapping.Key, mapping.Value);
+ {
+ return Registry(mapping.Key, mapping.Value);
+ }
}
\ No newline at end of file
diff --git a/GFramework.Core.Abstractions/state/IState.cs b/GFramework.Core.Abstractions/state/IState.cs
index 8159804..8867c6f 100644
--- a/GFramework.Core.Abstractions/state/IState.cs
+++ b/GFramework.Core.Abstractions/state/IState.cs
@@ -1,24 +1,24 @@
namespace GFramework.Core.Abstractions.state;
///
-/// 状态机状态接口,定义了状态的基本行为和转换规则
+/// 状态机状态接口,定义了状态的基本行为和转换规则
///
public interface IState
{
///
- /// 当状态被激活进入时调用
+ /// 当状态被激活进入时调用
///
/// 从哪个状态转换而来,可能为null表示初始状态
void OnEnter(IState? from);
///
- /// 当状态退出时调用
+ /// 当状态退出时调用
///
/// 将要转换到的目标状态,可能为null表示结束状态
void OnExit(IState? to);
///
- /// 判断当前状态是否可以转换到目标状态
+ /// 判断当前状态是否可以转换到目标状态
///
/// 目标状态
/// 如果可以转换则返回true,否则返回false
diff --git a/GFramework.Core.Abstractions/state/IStateMachine.cs b/GFramework.Core.Abstractions/state/IStateMachine.cs
index 1e36c85..4c4b5c3 100644
--- a/GFramework.Core.Abstractions/state/IStateMachine.cs
+++ b/GFramework.Core.Abstractions/state/IStateMachine.cs
@@ -1,84 +1,81 @@
-using System;
-using System.Collections.Generic;
-
namespace GFramework.Core.Abstractions.state;
///
-/// 状态机接口,用于管理状态的注册、切换和验证
+/// 状态机接口,用于管理状态的注册、切换和验证
///
public interface IStateMachine
{
///
- /// 获取当前激活的状态
+ /// 获取当前激活的状态
///
IState? Current { get; }
///
- /// 注册一个状态到状态机中
+ /// 注册一个状态到状态机中
///
/// 要注册的状态实例
IStateMachine Register(IState state);
///
- /// 从状态机中注销指定类型的状态
+ /// 从状态机中注销指定类型的状态
///
/// 要注销的状态类型,必须实现IState接口
IStateMachine Unregister() where T : IState;
///
- /// 检查是否可以切换到指定类型的状态
+ /// 检查是否可以切换到指定类型的状态
///
/// 目标状态类型,必须实现IState接口
/// 如果可以切换则返回true,否则返回false
bool CanChangeTo() where T : IState;
///
- /// 切换到指定类型的状态
+ /// 切换到指定类型的状态
///
/// 要切换到的状态类型,必须实现IState接口
/// 如果成功切换则返回true,否则返回false
bool ChangeTo() where T : IState;
///
- /// 检查指定类型的状态是否已注册
+ /// 检查指定类型的状态是否已注册
///
/// 要检查的状态类型
/// 如果状态已注册则返回true,否则返回false
bool IsRegistered() where T : IState;
///
- /// 获取指定类型的已注册状态实例
+ /// 获取指定类型的已注册状态实例
///
/// 要获取的状态类型
/// 如果状态存在则返回对应实例,否则返回null
T? GetState() where T : class, IState;
///
- /// 获取所有已注册状态的类型集合
+ /// 获取所有已注册状态的类型集合
///
/// 包含所有已注册状态类型的枚举器
IEnumerable GetRegisteredStateTypes();
///
- /// 获取上一个状态
+ /// 获取上一个状态
///
/// 如果历史记录存在则返回上一个状态,否则返回null
IState? GetPreviousState();
///
- /// 获取状态历史记录
+ /// 获取状态历史记录
///
/// 状态历史记录的只读副本
IReadOnlyList GetStateHistory();
///
- /// 回退到上一个状态
+ /// 回退到上一个状态
///
/// 如果成功回退则返回true,否则返回false
bool GoBack();
///
- /// 清空状态历史记录
+ /// 清空状态历史记录
///
void ClearHistory();
}
\ No newline at end of file
diff --git a/GFramework.Core.Abstractions/state/IStateMachineSystem.cs b/GFramework.Core.Abstractions/state/IStateMachineSystem.cs
index c31021b..982400f 100644
--- a/GFramework.Core.Abstractions/state/IStateMachineSystem.cs
+++ b/GFramework.Core.Abstractions/state/IStateMachineSystem.cs
@@ -3,7 +3,7 @@
namespace GFramework.Core.Abstractions.state;
///
-/// 状态机系统接口,继承自ISystem和IStateMachine接口
-/// 提供状态机系统的功能定义,结合了系统管理和状态机管理的能力
+/// 状态机系统接口,继承自ISystem和IStateMachine接口
+/// 提供状态机系统的功能定义,结合了系统管理和状态机管理的能力
///
public interface IStateMachineSystem : ISystem, IStateMachine;
\ No newline at end of file
diff --git a/GFramework.Core.Abstractions/storage/IStorage.cs b/GFramework.Core.Abstractions/storage/IStorage.cs
index a39105b..8216ca8 100644
--- a/GFramework.Core.Abstractions/storage/IStorage.cs
+++ b/GFramework.Core.Abstractions/storage/IStorage.cs
@@ -1,29 +1,28 @@
-using System.Threading.Tasks;
-using GFramework.Core.Abstractions.utility;
+using GFramework.Core.Abstractions.utility;
namespace GFramework.Core.Abstractions.storage;
///
-/// 存储接口,提供同步和异步的数据存储操作功能
+/// 存储接口,提供同步和异步的数据存储操作功能
///
public interface IStorage : IUtility
{
///
- /// 检查指定键的存储项是否存在
+ /// 检查指定键的存储项是否存在
///
/// 要检查的键
/// 如果键存在则返回true,否则返回false
bool Exists(string key);
///
- /// 异步检查指定键的存储项是否存在
+ /// 异步检查指定键的存储项是否存在
///
/// 要检查的键
/// 如果键存在则返回true,否则返回false
Task ExistsAsync(string key);
///
- /// 读取指定键的值
+ /// 读取指定键的值
///
/// 要读取的值的类型
/// 要读取的键
@@ -31,7 +30,7 @@ public interface IStorage : IUtility
T Read(string key);
///
- /// 读取指定键的值,如果键不存在则返回默认值
+ /// 读取指定键的值,如果键不存在则返回默认值
///
/// 要读取的值的类型
/// 要读取的键
@@ -40,7 +39,7 @@ public interface IStorage : IUtility
T Read(string key, T defaultValue);
///
- /// 异步读取指定键的值
+ /// 异步读取指定键的值
///
/// 要读取的值的类型
/// 要读取的键
@@ -48,7 +47,7 @@ public interface IStorage : IUtility
Task ReadAsync(string key);
///
- /// 将值写入指定键
+ /// 将值写入指定键
///
/// 要写入的值的类型
/// 要写入的键
@@ -56,7 +55,7 @@ public interface IStorage : IUtility
void Write(string key, T value);
///
- /// 异步将值写入指定键
+ /// 异步将值写入指定键
///
/// 要写入的值的类型
/// 要写入的键
@@ -65,7 +64,7 @@ public interface IStorage : IUtility
Task WriteAsync(string key, T value);
///
- /// 删除指定键的存储项
+ /// 删除指定键的存储项
///
/// 要删除的键
void Delete(string key);
diff --git a/GFramework.Core.Tests/GFramework.Core.Tests.csproj b/GFramework.Core.Tests/GFramework.Core.Tests.csproj
index cf4b142..86171dc 100644
--- a/GFramework.Core.Tests/GFramework.Core.Tests.csproj
+++ b/GFramework.Core.Tests/GFramework.Core.Tests.csproj
@@ -6,13 +6,13 @@
net10.0;net8.0
-
-
-
+
+
+
-
+
diff --git a/GFramework.Core.Tests/architecture/ArchitectureConfigurationTests.cs b/GFramework.Core.Tests/architecture/ArchitectureConfigurationTests.cs
index 30e3705..af6afa9 100644
--- a/GFramework.Core.Tests/architecture/ArchitectureConfigurationTests.cs
+++ b/GFramework.Core.Tests/architecture/ArchitectureConfigurationTests.cs
@@ -8,15 +8,15 @@ using NUnit.Framework;
namespace GFramework.Core.Tests.architecture;
///
-/// ArchitectureConfiguration类的单元测试
-/// 测试内容包括:
-/// - 构造函数默认值
-/// - LoggerProperties默认配置(ConsoleLoggerFactoryProvider + Info级别)
-/// - ArchitectureProperties默认配置(AllowLateRegistration=false, StrictPhaseValidation=true)
-/// - 自定义配置替换
-/// - LoggerProperties独立修改
-/// - ArchitectureProperties独立修改
-/// - IArchitectureConfiguration接口实现验证
+/// ArchitectureConfiguration类的单元测试
+/// 测试内容包括:
+/// - 构造函数默认值
+/// - LoggerProperties默认配置(ConsoleLoggerFactoryProvider + Info级别)
+/// - ArchitectureProperties默认配置(AllowLateRegistration=false, StrictPhaseValidation=true)
+/// - 自定义配置替换
+/// - LoggerProperties独立修改
+/// - ArchitectureProperties独立修改
+/// - IArchitectureConfiguration接口实现验证
///
[TestFixture]
public class ArchitectureConfigurationTests
@@ -30,7 +30,7 @@ public class ArchitectureConfigurationTests
private ArchitectureConfiguration? _configuration;
///
- /// 测试构造函数是否正确初始化LoggerProperties
+ /// 测试构造函数是否正确初始化LoggerProperties
///
[Test]
public void Constructor_Should_Initialize_LoggerProperties_With_Default_Values()
@@ -40,7 +40,7 @@ public class ArchitectureConfigurationTests
}
///
- /// 测试LoggerProperties默认使用ConsoleLoggerFactoryProvider
+ /// 测试LoggerProperties默认使用ConsoleLoggerFactoryProvider
///
[Test]
public void LoggerProperties_Should_Use_ConsoleLoggerFactoryProvider_By_Default()
@@ -50,7 +50,7 @@ public class ArchitectureConfigurationTests
}
///
- /// 测试LoggerProperties默认使用Info日志级别
+ /// 测试LoggerProperties默认使用Info日志级别
///
[Test]
public void LoggerProperties_Should_Use_Info_LogLevel_By_Default()
@@ -63,7 +63,7 @@ public class ArchitectureConfigurationTests
}
///
- /// 测试ArchitectureProperties的AllowLateRegistration默认为false
+ /// 测试ArchitectureProperties的AllowLateRegistration默认为false
///
[Test]
public void ArchitectureProperties_Should_Have_AllowLateRegistration_Set_To_False_By_Default()
@@ -73,7 +73,7 @@ public class ArchitectureConfigurationTests
}
///
- /// 测试ArchitectureProperties的StrictPhaseValidation默认为true
+ /// 测试ArchitectureProperties的StrictPhaseValidation默认为true
///
[Test]
public void ArchitectureProperties_Should_Have_StrictPhaseValidation_Set_To_True_By_Default()
@@ -83,7 +83,7 @@ public class ArchitectureConfigurationTests
}
///
- /// 测试LoggerProperties可以被自定义配置替换
+ /// 测试LoggerProperties可以被自定义配置替换
///
[Test]
public void LoggerProperties_Should_Be_Replaced_With_Custom_Configuration()
@@ -105,7 +105,7 @@ public class ArchitectureConfigurationTests
}
///
- /// 测试ArchitectureProperties可以被自定义配置替换
+ /// 测试ArchitectureProperties可以被自定义配置替换
///
[Test]
public void ArchitectureProperties_Should_Be_Replaced_With_Custom_Configuration()
@@ -126,7 +126,7 @@ public class ArchitectureConfigurationTests
}
///
- /// 测试LoggerProperties可以独立修改
+ /// 测试LoggerProperties可以独立修改
///
[Test]
public void LoggerProperties_Should_Be_Modifiable_Independently()
@@ -142,7 +142,7 @@ public class ArchitectureConfigurationTests
}
///
- /// 测试ArchitectureProperties可以独立修改
+ /// 测试ArchitectureProperties可以独立修改
///
[Test]
public void ArchitectureProperties_Should_Be_Modifiable_Independently()
@@ -157,7 +157,7 @@ public class ArchitectureConfigurationTests
}
///
- /// 测试ArchitectureConfiguration实现IArchitectureConfiguration接口
+ /// 测试ArchitectureConfiguration实现IArchitectureConfiguration接口
///
[Test]
public void ArchitectureConfiguration_Should_Implement_IArchitectureConfiguration_Interface()
@@ -166,7 +166,7 @@ public class ArchitectureConfigurationTests
}
///
- /// 测试新实例不与其他实例共享LoggerProperties
+ /// 测试新实例不与其他实例共享LoggerProperties
///
[Test]
public void New_Instance_Should_Not_Share_LoggerProperties_With_Other_Instance()
@@ -178,7 +178,7 @@ public class ArchitectureConfigurationTests
}
///
- /// 测试新实例不与其他实例共享ArchitectureProperties
+ /// 测试新实例不与其他实例共享ArchitectureProperties
///
[Test]
public void New_Instance_Should_Not_Share_ArchitectureProperties_With_Other_Instance()
diff --git a/GFramework.Core.Tests/architecture/ArchitectureConstantsTests.cs b/GFramework.Core.Tests/architecture/ArchitectureConstantsTests.cs
index 02bb50a..866bf2d 100644
--- a/GFramework.Core.Tests/architecture/ArchitectureConstantsTests.cs
+++ b/GFramework.Core.Tests/architecture/ArchitectureConstantsTests.cs
@@ -6,19 +6,19 @@ using NUnit.Framework;
namespace GFramework.Core.Tests.architecture;
///
-/// ArchitectureConstants类的单元测试
-/// 测试内容包括:
-/// - 常量值的正确性
-/// - 常量类型验证
-/// - 常量可访问性
-/// - 常量命名规范
-/// - 架构阶段定义常量
+/// ArchitectureConstants类的单元测试
+/// 测试内容包括:
+/// - 常量值的正确性
+/// - 常量类型验证
+/// - 常量可访问性
+/// - 常量命名规范
+/// - 架构阶段定义常量
///
[TestFixture]
public class ArchitectureConstantsTests
{
///
- /// 测试PhaseOrder数组不为空
+ /// 测试PhaseOrder数组不为空
///
[Test]
public void PhaseOrder_Should_Not_Be_Empty()
@@ -28,7 +28,7 @@ public class ArchitectureConstantsTests
}
///
- /// 测试PhaseOrder包含所有预期的架构阶段
+ /// 测试PhaseOrder包含所有预期的架构阶段
///
[Test]
public void PhaseOrder_Should_Contain_All_Expected_Phases()
@@ -50,13 +50,11 @@ public class ArchitectureConstantsTests
Assert.That(ArchitectureConstants.PhaseOrder.Length, Is.EqualTo(expectedPhases.Length));
foreach (var expectedPhase in expectedPhases)
- {
Assert.That(ArchitectureConstants.PhaseOrder, Does.Contain(expectedPhase));
- }
}
///
- /// 测试PhaseOrder数组是只读的
+ /// 测试PhaseOrder数组是只读的
///
[Test]
public void PhaseOrder_Should_Be_Immutable()
@@ -67,7 +65,7 @@ public class ArchitectureConstantsTests
}
///
- /// 测试PhaseOrder的顺序是正确的
+ /// 测试PhaseOrder的顺序是正确的
///
[Test]
public void PhaseOrder_Should_Be_In_Correct_Sequence()
@@ -91,7 +89,7 @@ public class ArchitectureConstantsTests
}
///
- /// 测试PhaseTransitions字典不为空
+ /// 测试PhaseTransitions字典不为空
///
[Test]
public void PhaseTransitions_Should_Not_Be_Empty()
@@ -101,7 +99,7 @@ public class ArchitectureConstantsTests
}
///
- /// 测试PhaseTransitions是只读的
+ /// 测试PhaseTransitions是只读的
///
[Test]
public void PhaseTransitions_Should_Be_Immutable()
@@ -111,7 +109,7 @@ public class ArchitectureConstantsTests
}
///
- /// 测试PhaseTransitions包含正常线性流程的转换
+ /// 测试PhaseTransitions包含正常线性流程的转换
///
[Test]
public void PhaseTransitions_Should_Contain_Normal_Linear_Transitions()
@@ -128,7 +126,7 @@ public class ArchitectureConstantsTests
}
///
- /// 测试PhaseTransitions中的转换方向是正确的
+ /// 测试PhaseTransitions中的转换方向是正确的
///
[Test]
public void PhaseTransitions_Should_Have_Correct_Directions()
@@ -147,7 +145,7 @@ public class ArchitectureConstantsTests
}
///
- /// 测试PhaseTransitions包含失败初始化的转换路径
+ /// 测试PhaseTransitions包含失败初始化的转换路径
///
[Test]
public void PhaseTransitions_Should_Contain_FailedInitialization_Transition()
@@ -158,20 +156,18 @@ public class ArchitectureConstantsTests
}
///
- /// 测试每个阶段的转换数量不超过1个(线性转换)
+ /// 测试每个阶段的转换数量不超过1个(线性转换)
///
[Test]
public void PhaseTransitions_Should_Have_Maximum_One_Transition_Per_Phase()
{
foreach (var transition in ArchitectureConstants.PhaseTransitions)
- {
Assert.That(transition.Value, Has.Length.LessThanOrEqualTo(1),
$"Phase {transition.Key} should have at most 1 transition");
- }
}
///
- /// 测试PhaseOrder和PhaseTransitions的一致性
+ /// 测试PhaseOrder和PhaseTransitions的一致性
///
[Test]
public void PhaseOrder_And_PhaseTransitions_Should_Be_Consistent()
@@ -179,7 +175,7 @@ public class ArchitectureConstantsTests
var phaseOrder = ArchitectureConstants.PhaseOrder;
var transitions = ArchitectureConstants.PhaseTransitions;
- for (int i = 0; i < phaseOrder.Length - 1; i++)
+ for (var i = 0; i < phaseOrder.Length - 1; i++)
{
var currentPhase = phaseOrder[i];
var nextPhase = phaseOrder[i + 1];
diff --git a/GFramework.Core.Tests/architecture/ArchitectureContextTests.cs b/GFramework.Core.Tests/architecture/ArchitectureContextTests.cs
index da2ed5f..1104c3f 100644
--- a/GFramework.Core.Tests/architecture/ArchitectureContextTests.cs
+++ b/GFramework.Core.Tests/architecture/ArchitectureContextTests.cs
@@ -19,26 +19,26 @@ using NUnit.Framework;
namespace GFramework.Core.Tests.architecture;
///
-/// ArchitectureContext类的单元测试
-/// 测试内容包括:
-/// - 构造函数参数验证(所有5个参数)
-/// - 构造函数空参数异常
-/// - SendQuery方法 - 正常查询发送
-/// - SendQuery方法 - 空查询异常
-/// - SendCommand方法 - 正常命令发送
-/// - SendCommand方法 - 空命令异常
-/// - SendCommand_WithResult方法 - 正常命令发送
-/// - SendCommand_WithResult方法 - 空命令异常
-/// - SendEvent方法 - 正常事件发送
-/// - SendEvent_WithInstance方法 - 正常事件发送
-/// - SendEvent_WithInstance方法 - 空事件异常
-/// - GetSystem方法 - 获取已注册系统
-/// - GetSystem方法 - 获取未注册系统
-/// - GetModel方法 - 获取已注册模型
-/// - GetModel方法 - 获取未注册模型
-/// - GetUtility方法 - 获取已注册工具
-/// - GetUtility方法 - 获取未注册工具
-/// - GetEnvironment方法 - 获取环境对象
+/// ArchitectureContext类的单元测试
+/// 测试内容包括:
+/// - 构造函数参数验证(所有5个参数)
+/// - 构造函数空参数异常
+/// - SendQuery方法 - 正常查询发送
+/// - SendQuery方法 - 空查询异常
+/// - SendCommand方法 - 正常命令发送
+/// - SendCommand方法 - 空命令异常
+/// - SendCommand_WithResult方法 - 正常命令发送
+/// - SendCommand_WithResult方法 - 空命令异常
+/// - SendEvent方法 - 正常事件发送
+/// - SendEvent_WithInstance方法 - 正常事件发送
+/// - SendEvent_WithInstance方法 - 空事件异常
+/// - GetSystem方法 - 获取已注册系统
+/// - GetSystem方法 - 获取未注册系统
+/// - GetModel方法 - 获取已注册模型
+/// - GetModel方法 - 获取未注册模型
+/// - GetUtility方法 - 获取已注册工具
+/// - GetUtility方法 - 获取未注册工具
+/// - GetEnvironment方法 - 获取环境对象
///
[TestFixture]
public class ArchitectureContextTests
@@ -83,7 +83,7 @@ public class ArchitectureContextTests
private DefaultEnvironment? _environment;
///
- /// 测试构造函数在所有参数都有效时不应抛出异常
+ /// 测试构造函数在所有参数都有效时不应抛出异常
///
[Test]
public void Constructor_Should_NotThrow_When_AllParameters_AreValid()
@@ -92,7 +92,7 @@ public class ArchitectureContextTests
}
///
- /// 测试构造函数在 container 为 null 时应抛出 ArgumentNullException
+ /// 测试构造函数在 container 为 null 时应抛出 ArgumentNullException
///
[Test]
public void Constructor_Should_Throw_When_Container_IsNull()
@@ -101,7 +101,7 @@ public class ArchitectureContextTests
}
///
- /// 测试构造函数在Container为null时应抛出ArgumentNullException
+ /// 测试构造函数在Container为null时应抛出ArgumentNullException
///
[Test]
public void Constructor_Should_ThrowArgumentNullException_When_Container_IsNull()
@@ -111,7 +111,7 @@ public class ArchitectureContextTests
}
///
- /// 测试SendQuery方法在查询有效时返回正确结果
+ /// 测试SendQuery方法在查询有效时返回正确结果
///
[Test]
public void SendQuery_Should_ReturnResult_When_Query_IsValid()
@@ -123,7 +123,7 @@ public class ArchitectureContextTests
}
///
- /// 测试SendQuery方法在查询为null时应抛出ArgumentNullException
+ /// 测试SendQuery方法在查询为null时应抛出ArgumentNullException
///
[Test]
public void SendQuery_Should_ThrowArgumentNullException_When_Query_IsNull()
@@ -133,7 +133,7 @@ public class ArchitectureContextTests
}
///
- /// 测试SendCommand方法在命令有效时正确执行
+ /// 测试SendCommand方法在命令有效时正确执行
///
[Test]
public void SendCommand_Should_ExecuteCommand_When_Command_IsValid()
@@ -144,17 +144,17 @@ public class ArchitectureContextTests
}
///
- /// 测试SendCommand方法在命令为null时应抛出ArgumentNullException
+ /// 测试SendCommand方法在命令为null时应抛出ArgumentNullException
///
[Test]
public void SendCommand_Should_ThrowArgumentNullException_When_Command_IsNull()
{
- Assert.That(() => _context!.SendCommand((ICommand)null!),
+ Assert.That(() => _context!.SendCommand(null!),
Throws.ArgumentNullException.With.Property("ParamName").EqualTo("command"));
}
///
- /// 测试SendCommand方法(带返回值)在命令有效时返回正确结果
+ /// 测试SendCommand方法(带返回值)在命令有效时返回正确结果
///
[Test]
public void SendCommand_WithResult_Should_ReturnResult_When_Command_IsValid()
@@ -166,7 +166,7 @@ public class ArchitectureContextTests
}
///
- /// 测试SendCommand方法(带返回值)在命令为null时应抛出ArgumentNullException
+ /// 测试SendCommand方法(带返回值)在命令为null时应抛出ArgumentNullException
///
[Test]
public void SendCommand_WithResult_Should_ThrowArgumentNullException_When_Command_IsNull()
@@ -176,12 +176,12 @@ public class ArchitectureContextTests
}
///
- /// 测试SendEvent方法在事件类型有效时正确发送事件
+ /// 测试SendEvent方法在事件类型有效时正确发送事件
///
[Test]
public void SendEvent_Should_SendEvent_When_EventType_IsValid()
{
- bool eventReceived = false;
+ var eventReceived = false;
_context!.RegisterEvent(_ => eventReceived = true);
_context.SendEvent();
@@ -189,12 +189,12 @@ public class ArchitectureContextTests
}
///
- /// 测试SendEvent方法(带实例)在事件实例有效时正确发送事件
+ /// 测试SendEvent方法(带实例)在事件实例有效时正确发送事件
///
[Test]
public void SendEvent_WithInstance_Should_SendEvent_When_EventInstance_IsValid()
{
- bool eventReceived = false;
+ var eventReceived = false;
var testEvent = new TestEventV2();
_context!.RegisterEvent(_ => eventReceived = true);
_context.SendEvent(testEvent);
@@ -203,7 +203,7 @@ public class ArchitectureContextTests
}
///
- /// 测试SendEvent方法(带实例)在事件实例为null时应抛出ArgumentNullException
+ /// 测试SendEvent方法(带实例)在事件实例为null时应抛出ArgumentNullException
///
[Test]
public void SendEvent_WithInstance_Should_ThrowArgumentNullException_When_EventInstance_IsNull()
@@ -213,7 +213,7 @@ public class ArchitectureContextTests
}
///
- /// 测试GetSystem方法在系统已注册时返回注册的系统
+ /// 测试GetSystem方法在系统已注册时返回注册的系统
///
[Test]
public void GetSystem_Should_ReturnRegisteredSystem_When_SystemIsRegistered()
@@ -228,7 +228,7 @@ public class ArchitectureContextTests
}
///
- /// 测试GetSystem方法在系统未注册时返回null
+ /// 测试GetSystem方法在系统未注册时返回null
///
[Test]
public void GetSystem_Should_ReturnNull_When_SystemIsNotRegistered()
@@ -239,7 +239,7 @@ public class ArchitectureContextTests
}
///
- /// 测试GetModel方法在模型已注册时返回注册的模型
+ /// 测试GetModel方法在模型已注册时返回注册的模型
///
[Test]
public void GetModel_Should_ReturnRegisteredModel_When_ModelIsRegistered()
@@ -254,7 +254,7 @@ public class ArchitectureContextTests
}
///
- /// 测试GetModel方法在模型未注册时返回null
+ /// 测试GetModel方法在模型未注册时返回null
///
[Test]
public void GetModel_Should_ReturnNull_When_ModelIsNotRegistered()
@@ -265,7 +265,7 @@ public class ArchitectureContextTests
}
///
- /// 测试GetUtility方法在工具已注册时返回注册的工具
+ /// 测试GetUtility方法在工具已注册时返回注册的工具
///
[Test]
public void GetUtility_Should_ReturnRegisteredUtility_When_UtilityIsRegistered()
@@ -280,7 +280,7 @@ public class ArchitectureContextTests
}
///
- /// 测试GetUtility方法在工具未注册时返回null
+ /// 测试GetUtility方法在工具未注册时返回null
///
[Test]
public void GetUtility_Should_ReturnNull_When_UtilityIsNotRegistered()
@@ -291,7 +291,7 @@ public class ArchitectureContextTests
}
///
- /// 测试GetEnvironment方法返回环境实例
+ /// 测试GetEnvironment方法返回环境实例
///
[Test]
public void GetEnvironment_Should_Return_EnvironmentInstance()
@@ -310,8 +310,15 @@ public class TestSystemV2 : ISystem
private IArchitectureContext _context = null!;
public int Id { get; init; }
- public void SetContext(IArchitectureContext context) => _context = context;
- public IArchitectureContext GetContext() => _context;
+ public void SetContext(IArchitectureContext context)
+ {
+ _context = context;
+ }
+
+ public IArchitectureContext GetContext()
+ {
+ return _context;
+ }
public void Init()
{
@@ -331,8 +338,15 @@ public class TestModelV2 : IModel
private IArchitectureContext _context = null!;
public int Id { get; init; }
- public void SetContext(IArchitectureContext context) => _context = context;
- public IArchitectureContext GetContext() => _context;
+ public void SetContext(IArchitectureContext context)
+ {
+ _context = context;
+ }
+
+ public IArchitectureContext GetContext()
+ {
+ return _context;
+ }
public void Init()
{
@@ -352,8 +366,15 @@ public class TestUtilityV2 : IUtility
private IArchitectureContext _context = null!;
public int Id { get; init; }
- public void SetContext(IArchitectureContext context) => _context = context;
- public IArchitectureContext GetContext() => _context;
+ public void SetContext(IArchitectureContext context)
+ {
+ _context = context;
+ }
+
+ public IArchitectureContext GetContext()
+ {
+ return _context;
+ }
}
public class TestQueryV2 : IQuery
@@ -361,9 +382,20 @@ public class TestQueryV2 : IQuery
private IArchitectureContext _context = null!;
public int Result { get; init; }
- public int Do() => Result;
- public void SetContext(IArchitectureContext context) => _context = context;
- public IArchitectureContext GetContext() => _context;
+ public int Do()
+ {
+ return Result;
+ }
+
+ public void SetContext(IArchitectureContext context)
+ {
+ _context = context;
+ }
+
+ public IArchitectureContext GetContext()
+ {
+ return _context;
+ }
}
public class TestCommandV2 : ICommand
@@ -371,9 +403,20 @@ public class TestCommandV2 : ICommand
private IArchitectureContext _context = null!;
public bool Executed { get; private set; }
- public void Execute() => Executed = true;
- public void SetContext(IArchitectureContext context) => _context = context;
- public IArchitectureContext GetContext() => _context;
+ public void Execute()
+ {
+ Executed = true;
+ }
+
+ public void SetContext(IArchitectureContext context)
+ {
+ _context = context;
+ }
+
+ public IArchitectureContext GetContext()
+ {
+ return _context;
+ }
}
public class TestCommandWithResultV2 : ICommand
@@ -381,9 +424,20 @@ public class TestCommandWithResultV2 : ICommand
private IArchitectureContext _context = null!;
public int Result { get; init; }
- public int Execute() => Result;
- public void SetContext(IArchitectureContext context) => _context = context;
- public IArchitectureContext GetContext() => _context;
+ public int Execute()
+ {
+ return Result;
+ }
+
+ public void SetContext(IArchitectureContext context)
+ {
+ _context = context;
+ }
+
+ public IArchitectureContext GetContext()
+ {
+ return _context;
+ }
}
public class TestEventV2
diff --git a/GFramework.Core.Tests/architecture/ArchitectureServicesTests.cs b/GFramework.Core.Tests/architecture/ArchitectureServicesTests.cs
index fb1e7bb..78858f1 100644
--- a/GFramework.Core.Tests/architecture/ArchitectureServicesTests.cs
+++ b/GFramework.Core.Tests/architecture/ArchitectureServicesTests.cs
@@ -18,17 +18,17 @@ using NUnit.Framework;
namespace GFramework.Core.Tests.architecture;
///
-/// ArchitectureServices类的单元测试
-/// 测试内容包括:
-/// - 服务容器初始化
-/// - 所有服务实例创建(Container, EventBus, CommandBus, QueryBus)
-/// - SetContext方法 - 设置上下文
-/// - SetContext方法 - 重复设置上下文
-/// - GetContext方法 - 获取已设置上下文
-/// - GetContext方法 - 未设置上下文时返回null
-/// - 上下文传播到容器
-/// - IArchitectureServices接口实现验证
-/// - 服务独立性验证(多个实例)
+/// ArchitectureServices类的单元测试
+/// 测试内容包括:
+/// - 服务容器初始化
+/// - 所有服务实例创建(Container, EventBus, CommandBus, QueryBus)
+/// - SetContext方法 - 设置上下文
+/// - SetContext方法 - 重复设置上下文
+/// - GetContext方法 - 获取已设置上下文
+/// - GetContext方法 - 未设置上下文时返回null
+/// - 上下文传播到容器
+/// - IArchitectureServices接口实现验证
+/// - 服务独立性验证(多个实例)
///
[TestFixture]
public class ArchitectureServicesTests
@@ -44,7 +44,7 @@ public class ArchitectureServicesTests
private TestArchitectureContextV3? _context;
///
- /// 测试构造函数初始化所有服务
+ /// 测试构造函数初始化所有服务
///
[Test]
public void Constructor_Should_Initialize_AllServices()
@@ -63,7 +63,7 @@ public class ArchitectureServicesTests
}
///
- /// 测试EventBus是EventBus的实例
+ /// 测试EventBus是EventBus的实例
///
[Test]
public void EventBus_Should_Be_Instance_Of_EventBus()
@@ -73,7 +73,7 @@ public class ArchitectureServicesTests
}
///
- /// 测试CommandBus是CommandBus的实例
+ /// 测试CommandBus是CommandBus的实例
///
[Test]
public void CommandBus_Should_Be_Instance_Of_CommandBus()
@@ -83,7 +83,7 @@ public class ArchitectureServicesTests
}
///
- /// 测试QueryBus是QueryBus的实例
+ /// 测试QueryBus是QueryBus的实例
///
[Test]
public void QueryBus_Should_Be_Instance_Of_QueryBus()
@@ -93,7 +93,7 @@ public class ArchitectureServicesTests
}
///
- /// 测试SetContext设置内部Context字段
+ /// 测试SetContext设置内部Context字段
///
[Test]
public void SetContext_Should_Set_Context_Internal_Field()
@@ -105,7 +105,7 @@ public class ArchitectureServicesTests
}
///
- /// 测试SetContext将上下文传播到Container
+ /// 测试SetContext将上下文传播到Container
///
[Test]
public void SetContext_Should_Propagate_Context_To_Container()
@@ -117,7 +117,7 @@ public class ArchitectureServicesTests
}
///
- /// 测试GetContext在SetContext后返回上下文
+ /// 测试GetContext在SetContext后返回上下文
///
[Test]
public void GetContext_Should_Return_Context_After_SetContext()
@@ -130,7 +130,7 @@ public class ArchitectureServicesTests
}
///
- /// 测试GetContext在未设置上下文时返回null
+ /// 测试GetContext在未设置上下文时返回null
///
[Test]
public void GetContext_Should_ReturnNull_When_Context_Not_Set()
@@ -141,7 +141,7 @@ public class ArchitectureServicesTests
}
///
- /// 测试SetContext替换已存在的上下文
+ /// 测试SetContext替换已存在的上下文
///
[Test]
public void SetContext_Should_Replace_Existing_Context()
@@ -157,7 +157,7 @@ public class ArchitectureServicesTests
}
///
- /// 测试ArchitectureServices实现IArchitectureServices接口
+ /// 测试ArchitectureServices实现IArchitectureServices接口
///
[Test]
public void ArchitectureServices_Should_Implement_IArchitectureServices_Interface()
@@ -166,7 +166,7 @@ public class ArchitectureServicesTests
}
///
- /// 测试多个实例有独立的Container
+ /// 测试多个实例有独立的Container
///
[Test]
public void Multiple_Instances_Should_Have_Independent_Container()
@@ -178,7 +178,7 @@ public class ArchitectureServicesTests
}
///
- /// 测试多个实例有独立的EventBus
+ /// 测试多个实例有独立的EventBus
///
[Test]
public void Multiple_Instances_Should_Have_Independent_EventBus()
@@ -190,7 +190,7 @@ public class ArchitectureServicesTests
}
///
- /// 测试多个实例有独立的CommandBus
+ /// 测试多个实例有独立的CommandBus
///
[Test]
public void Multiple_Instances_Should_Have_Independent_CommandBus()
@@ -202,7 +202,7 @@ public class ArchitectureServicesTests
}
///
- /// 测试多个实例有独立的QueryBus
+ /// 测试多个实例有独立的QueryBus
///
[Test]
public void Multiple_Instances_Should_Have_Independent_QueryBus()
@@ -227,10 +227,25 @@ public class TestArchitectureContextV3 : IArchitectureContext
public ICommandBus CommandBus => new CommandBus();
public IQueryBus QueryBus => new QueryBus();
- public TService? GetService() where TService : class => _container.Get();
- public TModel? GetModel() where TModel : class, IModel => _container.Get();
- public TSystem? GetSystem() where TSystem : class, ISystem => _container.Get();
- public TUtility? GetUtility() where TUtility : class, IUtility => _container.Get();
+ public TService? GetService() where TService : class
+ {
+ return _container.Get();
+ }
+
+ public TModel? GetModel() where TModel : class, IModel
+ {
+ return _container.Get();
+ }
+
+ public TSystem? GetSystem() where TSystem : class, ISystem
+ {
+ return _container.Get();
+ }
+
+ public TUtility? GetUtility() where TUtility : class, IUtility
+ {
+ return _container.Get();
+ }
public void SendEvent() where TEvent : new()
{
@@ -240,7 +255,10 @@ public class TestArchitectureContextV3 : IArchitectureContext
{
}
- public IUnRegister RegisterEvent(Action handler) => new DefaultUnRegister(() => { });
+ public IUnRegister RegisterEvent(Action handler)
+ {
+ return new DefaultUnRegister(() => { });
+ }
public void UnRegisterEvent(Action onEvent)
{
@@ -250,7 +268,10 @@ public class TestArchitectureContextV3 : IArchitectureContext
{
}
- public TResult SendCommand(ICommand command) => default!;
+ public TResult SendCommand(ICommand command)
+ {
+ return default!;
+ }
public Task SendCommandAsync(IAsyncCommand command)
{
@@ -262,11 +283,20 @@ public class TestArchitectureContextV3 : IArchitectureContext
return (Task)Task.CompletedTask;
}
- public TResult SendQuery(IQuery query) => default!;
+ public TResult SendQuery(IQuery query)
+ {
+ return default!;
+ }
- public Task SendQueryAsync(IAsyncQuery query) => (Task)Task.CompletedTask;
+ public Task SendQueryAsync(IAsyncQuery query)
+ {
+ return (Task)Task.CompletedTask;
+ }
- public IEnvironment GetEnvironment() => _environment;
+ public IEnvironment GetEnvironment()
+ {
+ return _environment;
+ }
}
#endregion
\ No newline at end of file
diff --git a/GFramework.Core.Tests/architecture/GameContextTests.cs b/GFramework.Core.Tests/architecture/GameContextTests.cs
index 588830e..f52881f 100644
--- a/GFramework.Core.Tests/architecture/GameContextTests.cs
+++ b/GFramework.Core.Tests/architecture/GameContextTests.cs
@@ -18,26 +18,26 @@ using NUnit.Framework;
namespace GFramework.Core.Tests.architecture;
///
-/// GameContext类的单元测试
-/// 测试内容包括:
-/// - ArchitectureReadOnlyDictionary在启动时为空
-/// - Bind方法添加上下文到字典
-/// - Bind重复类型时抛出异常
-/// - GetByType返回正确的上下文
-/// - GetByType未找到时抛出异常
-/// - Get泛型方法返回正确的上下文
-/// - TryGet方法在找到时返回true
-/// - TryGet方法在未找到时返回false
-/// - GetFirstArchitectureContext在存在时返回
-/// - GetFirstArchitectureContext为空时抛出异常
-/// - Unbind移除上下文
-/// - Clear移除所有上下文
+/// GameContext类的单元测试
+/// 测试内容包括:
+/// - ArchitectureReadOnlyDictionary在启动时为空
+/// - Bind方法添加上下文到字典
+/// - Bind重复类型时抛出异常
+/// - GetByType返回正确的上下文
+/// - GetByType未找到时抛出异常
+/// - Get泛型方法返回正确的上下文
+/// - TryGet方法在找到时返回true
+/// - TryGet方法在未找到时返回false
+/// - GetFirstArchitectureContext在存在时返回
+/// - GetFirstArchitectureContext为空时抛出异常
+/// - Unbind移除上下文
+/// - Clear移除所有上下文
///
[TestFixture]
public class GameContextTests
{
///
- /// 测试初始化方法,在每个测试方法执行前清空GameContext
+ /// 测试初始化方法,在每个测试方法执行前清空GameContext
///
[SetUp]
public void SetUp()
@@ -46,7 +46,7 @@ public class GameContextTests
}
///
- /// 测试清理方法,在每个测试方法执行后清空GameContext
+ /// 测试清理方法,在每个测试方法执行后清空GameContext
///
[TearDown]
public void TearDown()
@@ -55,7 +55,7 @@ public class GameContextTests
}
///
- /// 测试ArchitectureReadOnlyDictionary在启动时返回空字典
+ /// 测试ArchitectureReadOnlyDictionary在启动时返回空字典
///
[Test]
public void ArchitectureReadOnlyDictionary_Should_Return_Empty_At_Start()
@@ -66,7 +66,7 @@ public class GameContextTests
}
///
- /// 测试Bind方法是否正确将上下文添加到字典中
+ /// 测试Bind方法是否正确将上下文添加到字典中
///
[Test]
public void Bind_Should_Add_Context_To_Dictionary()
@@ -79,7 +79,7 @@ public class GameContextTests
}
///
- /// 测试Bind方法在绑定重复类型时是否抛出InvalidOperationException异常
+ /// 测试Bind方法在绑定重复类型时是否抛出InvalidOperationException异常
///
[Test]
public void Bind_WithDuplicateType_Should_ThrowInvalidOperationException()
@@ -94,7 +94,7 @@ public class GameContextTests
}
///
- /// 测试GetByType方法是否返回正确的上下文
+ /// 测试GetByType方法是否返回正确的上下文
///
[Test]
public void GetByType_Should_Return_Correct_Context()
@@ -108,7 +108,7 @@ public class GameContextTests
}
///
- /// 测试GetByType方法在未找到对应类型时是否抛出InvalidOperationException异常
+ /// 测试GetByType方法在未找到对应类型时是否抛出InvalidOperationException异常
///
[Test]
public void GetByType_Should_Throw_When_Not_Found()
@@ -118,7 +118,7 @@ public class GameContextTests
}
///
- /// 测试Get泛型方法是否返回正确的上下文
+ /// 测试Get泛型方法是否返回正确的上下文
///
[Test]
public void GetGeneric_Should_Return_Correct_Context()
@@ -132,7 +132,7 @@ public class GameContextTests
}
///
- /// 测试TryGet方法在找到上下文时是否返回true并正确设置输出参数
+ /// 测试TryGet方法在找到上下文时是否返回true并正确设置输出参数
///
[Test]
public void TryGet_Should_ReturnTrue_When_Found()
@@ -147,7 +147,7 @@ public class GameContextTests
}
///
- /// 测试TryGet方法在未找到上下文时是否返回false且输出参数为null
+ /// 测试TryGet方法在未找到上下文时是否返回false且输出参数为null
///
[Test]
public void TryGet_Should_ReturnFalse_When_Not_Found()
@@ -159,7 +159,7 @@ public class GameContextTests
}
///
- /// 测试GetFirstArchitectureContext方法在存在上下文时是否返回正确的上下文
+ /// 测试GetFirstArchitectureContext方法在存在上下文时是否返回正确的上下文
///
[Test]
public void GetFirstArchitectureContext_Should_Return_When_Exists()
@@ -173,7 +173,7 @@ public class GameContextTests
}
///
- /// 测试GetFirstArchitectureContext方法在没有上下文时是否抛出InvalidOperationException异常
+ /// 测试GetFirstArchitectureContext方法在没有上下文时是否抛出InvalidOperationException异常
///
[Test]
public void GetFirstArchitectureContext_Should_Throw_When_Empty()
@@ -183,7 +183,7 @@ public class GameContextTests
}
///
- /// 测试Unbind方法是否正确移除指定类型的上下文
+ /// 测试Unbind方法是否正确移除指定类型的上下文
///
[Test]
public void Unbind_Should_Remove_Context()
@@ -197,7 +197,7 @@ public class GameContextTests
}
///
- /// 测试Clear方法是否正确移除所有上下文
+ /// 测试Clear方法是否正确移除所有上下文
///
[Test]
public void Clear_Should_Remove_All_Contexts()
@@ -212,12 +212,12 @@ public class GameContextTests
}
///
-/// 测试用的架构类,继承自Architecture
+/// 测试用的架构类,继承自Architecture
///
public class TestArchitecture : Architecture
{
///
- /// 初始化方法,当前为空实现
+ /// 初始化方法,当前为空实现
///
protected override void Init()
{
@@ -225,67 +225,79 @@ public class TestArchitecture : Architecture
}
///
-/// 测试用的架构上下文类,实现了IArchitectureContext接口
+/// 测试用的架构上下文类,实现了IArchitectureContext接口
///
public class TestArchitectureContext : IArchitectureContext
{
private readonly IocContainer _container = new();
///
- /// 获取依赖注入容器
+ /// 获取依赖注入容器
///
public IIocContainer Container => _container;
///
- /// 获取事件总线
+ /// 获取事件总线
///
public IEventBus EventBus => new EventBus();
///
- /// 获取命令总线
+ /// 获取命令总线
///
public ICommandBus CommandBus => new CommandBus();
///
- /// 获取查询总线
+ /// 获取查询总线
///
public IQueryBus QueryBus => new QueryBus();
///
- /// 获取环境对象
+ /// 获取环境对象
///
public IEnvironment Environment => new DefaultEnvironment();
///
- /// 获取指定类型的服务
+ /// 获取指定类型的服务
///
/// 服务类型
/// 服务实例或null
- public TService? GetService() where TService : class => _container.Get();
+ public TService? GetService() where TService : class
+ {
+ return _container.Get();
+ }
///
- /// 获取指定类型的模型
+ /// 获取指定类型的模型
///
/// 模型类型
/// 模型实例或null
- public TModel? GetModel() where TModel : class, IModel => _container.Get();
+ public TModel? GetModel() where TModel : class, IModel
+ {
+ return _container.Get();
+ }
///
- /// 获取指定类型的系统
+ /// 获取指定类型的系统
///
/// 系统类型
/// 系统实例或null
- public TSystem? GetSystem() where TSystem : class, ISystem => _container.Get();
+ public TSystem? GetSystem() where TSystem : class, ISystem
+ {
+ return _container.Get();
+ }
///
- /// 获取指定类型的工具
+ /// 获取指定类型的工具
///
/// 工具类型
/// 工具实例或null
- public TUtility? GetUtility() where TUtility : class, IUtility => _container.Get();
+ public TUtility? GetUtility() where TUtility : class, IUtility
+ {
+ return _container.Get();
+ }
///
- /// 发送事件
+ /// 发送事件
///
/// 事件类型
public void SendEvent() where TEvent : new()
@@ -293,7 +305,7 @@ public class TestArchitectureContext : IArchitectureContext
}
///
- /// 发送事件
+ /// 发送事件
///
/// 事件类型
/// 事件实例
@@ -302,15 +314,18 @@ public class TestArchitectureContext : IArchitectureContext
}
///
- /// 注册事件处理器
+ /// 注册事件处理器
///
/// 事件类型
/// 事件处理委托
/// 取消注册接口
- public IUnRegister RegisterEvent(Action handler) => new DefaultUnRegister(() => { });
+ public IUnRegister RegisterEvent(Action handler)
+ {
+ return new DefaultUnRegister(() => { });
+ }
///
- /// 取消注册事件处理器
+ /// 取消注册事件处理器
///
/// 事件类型
/// 事件处理委托
@@ -319,7 +334,7 @@ public class TestArchitectureContext : IArchitectureContext
}
///
- /// 发送命令
+ /// 发送命令
///
/// 命令对象
public void SendCommand(ICommand command)
@@ -327,12 +342,15 @@ public class TestArchitectureContext : IArchitectureContext
}
///
- /// 发送带返回值的命令
+ /// 发送带返回值的命令
///
/// 返回值类型
/// 命令对象
/// 命令执行结果
- public TResult SendCommand(ICommand command) => default!;
+ public TResult SendCommand(ICommand command)
+ {
+ return default!;
+ }
public Task SendCommandAsync(IAsyncCommand command)
{
@@ -345,24 +363,33 @@ public class TestArchitectureContext : IArchitectureContext
}
///
- /// 发送查询请求
+ /// 发送查询请求
///
/// 查询结果类型
/// 查询对象
/// 查询结果
- public TResult SendQuery(IQuery query) => default!;
+ public TResult SendQuery(IQuery query)
+ {
+ return default!;
+ }
///
- /// 异步发送查询请求
+ /// 异步发送查询请求
///
/// 查询结果类型
/// 异步查询对象
/// 查询结果
- public Task SendQueryAsync(IAsyncQuery query) => (Task)Task.CompletedTask;
+ public Task SendQueryAsync(IAsyncQuery query)
+ {
+ return (Task)Task.CompletedTask;
+ }
///
- /// 获取环境对象
+ /// 获取环境对象
///
/// 环境对象
- public IEnvironment GetEnvironment() => Environment;
+ public IEnvironment GetEnvironment()
+ {
+ return Environment;
+ }
}
\ No newline at end of file
diff --git a/GFramework.Core.Tests/command/AbstractAsyncCommandTests.cs b/GFramework.Core.Tests/command/AbstractAsyncCommandTests.cs
index cedd3fc..988e612 100644
--- a/GFramework.Core.Tests/command/AbstractAsyncCommandTests.cs
+++ b/GFramework.Core.Tests/command/AbstractAsyncCommandTests.cs
@@ -11,20 +11,20 @@ using NUnit.Framework;
namespace GFramework.Core.Tests.command;
///
-/// AbstractAsyncCommand类的单元测试
-/// 测试内容包括:
-/// - 异步命令无返回值版本的基础实现
-/// - 异步命令有返回值版本的基础实现
-/// - ExecuteAsync方法调用
-/// - ExecuteAsync方法的异常处理
-/// - 上下文感知功能(SetContext, GetContext)
-/// - 日志功能(Logger属性)
-/// - 子类继承行为验证(两个版本)
-/// - 命令执行前日志记录
-/// - 命令执行后日志记录
-/// - 错误情况下的日志记录
-/// - 无返回值版本的行为
-/// - 有返回值版本的行为
+/// AbstractAsyncCommand类的单元测试
+/// 测试内容包括:
+/// - 异步命令无返回值版本的基础实现
+/// - 异步命令有返回值版本的基础实现
+/// - ExecuteAsync方法调用
+/// - ExecuteAsync方法的异常处理
+/// - 上下文感知功能(SetContext, GetContext)
+/// - 日志功能(Logger属性)
+/// - 子类继承行为验证(两个版本)
+/// - 命令执行前日志记录
+/// - 命令执行后日志记录
+/// - 错误情况下的日志记录
+/// - 无返回值版本的行为
+/// - 有返回值版本的行为
///
[TestFixture]
public class AbstractAsyncCommandTests
@@ -45,7 +45,7 @@ public class AbstractAsyncCommandTests
private IocContainer _container = null!;
///
- /// 测试异步命令无返回值版本的基础实现
+ /// 测试异步命令无返回值版本的基础实现
///
[Test]
public async Task AbstractAsyncCommand_Should_Implement_IAsyncCommand_Interface()
@@ -57,7 +57,7 @@ public class AbstractAsyncCommandTests
}
///
- /// 测试异步命令有返回值版本的基础实现
+ /// 测试异步命令有返回值版本的基础实现
///
[Test]
public async Task AbstractAsyncCommand_WithResult_Should_Implement_IAsyncCommand_Interface()
@@ -69,7 +69,7 @@ public class AbstractAsyncCommandTests
}
///
- /// 测试ExecuteAsync方法调用
+ /// 测试ExecuteAsync方法调用
///
[Test]
public async Task ExecuteAsync_Should_Invoke_OnExecuteAsync_Method()
@@ -85,7 +85,7 @@ public class AbstractAsyncCommandTests
}
///
- /// 测试ExecuteAsync方法(带返回值)调用
+ /// 测试ExecuteAsync方法(带返回值)调用
///
[Test]
public async Task ExecuteAsync_WithResult_Should_Invoke_OnExecuteAsync_Method_And_Return_Result()
@@ -101,7 +101,7 @@ public class AbstractAsyncCommandTests
}
///
- /// 测试ExecuteAsync方法的异常处理
+ /// 测试ExecuteAsync方法的异常处理
///
[Test]
public void ExecuteAsync_Should_Propagate_Exception_From_OnExecuteAsync()
@@ -114,7 +114,7 @@ public class AbstractAsyncCommandTests
}
///
- /// 测试上下文感知功能 - SetContext方法
+ /// 测试上下文感知功能 - SetContext方法
///
[Test]
public void SetContext_Should_Set_Context_Property()
@@ -130,7 +130,7 @@ public class AbstractAsyncCommandTests
}
///
- /// 测试上下文感知功能 - GetContext方法
+ /// 测试上下文感知功能 - GetContext方法
///
[Test]
public void GetContext_Should_Return_Context_Property()
@@ -147,7 +147,7 @@ public class AbstractAsyncCommandTests
}
///
- /// 测试子类继承行为验证 - 无返回值版本
+ /// 测试子类继承行为验证 - 无返回值版本
///
[Test]
public async Task Child_Class_Should_Inherit_And_Override_OnExecuteAsync_Method()
@@ -163,7 +163,7 @@ public class AbstractAsyncCommandTests
}
///
- /// 测试子类继承行为验证 - 有返回值版本
+ /// 测试子类继承行为验证 - 有返回值版本
///
[Test]
public async Task Child_Class_WithResult_Should_Inherit_And_Override_OnExecuteAsync_Method()
@@ -179,7 +179,7 @@ public class AbstractAsyncCommandTests
}
///
- /// 测试异步命令执行生命周期完整性
+ /// 测试异步命令执行生命周期完整性
///
[Test]
public async Task AsyncCommand_Should_Complete_Execution_Lifecycle()
@@ -197,7 +197,7 @@ public class AbstractAsyncCommandTests
}
///
- /// 测试异步命令多次执行
+ /// 测试异步命令多次执行
///
[Test]
public async Task AsyncCommand_Should_Be_Executable_Multiple_Times()
@@ -214,7 +214,7 @@ public class AbstractAsyncCommandTests
}
///
- /// 测试异步命令(带返回值)的返回值类型
+ /// 测试异步命令(带返回值)的返回值类型
///
[Test]
public async Task AsyncCommand_WithResult_Should_Return_Correct_Type()
@@ -231,23 +231,23 @@ public class AbstractAsyncCommandTests
}
///
-/// 测试用命令输入类V2
+/// 测试用命令输入类V2
///
public sealed class TestCommandInputV2 : ICommandInput
{
///
- /// 获取或设置值
+ /// 获取或设置值
///
public int Value { get; init; }
}
///
-/// 测试用异步命令类V3(无返回值)
+/// 测试用异步命令类V3(无返回值)
///
public sealed class TestAsyncCommandV3 : AbstractAsyncCommand
{
///
- /// 构造函数
+ /// 构造函数
///
/// 命令输入
public TestAsyncCommandV3(TestCommandInputV2 input) : base(input)
@@ -255,17 +255,17 @@ public sealed class TestAsyncCommandV3 : AbstractAsyncCommand
- /// 获取命令是否已执行
+ /// 获取命令是否已执行
///
public bool Executed { get; private set; }
///
- /// 获取执行的值
+ /// 获取执行的值
///
public int ExecutedValue { get; private set; }
///
- /// 执行异步命令的重写方法
+ /// 执行异步命令的重写方法
///
/// 命令输入
/// 表示异步操作的任务
@@ -278,12 +278,12 @@ public sealed class TestAsyncCommandV3 : AbstractAsyncCommand
-/// 测试用异步命令类V3(有返回值)
+/// 测试用异步命令类V3(有返回值)
///
public sealed class TestAsyncCommandWithResultV3 : AbstractAsyncCommand
{
///
- /// 构造函数
+ /// 构造函数
///
/// 命令输入
public TestAsyncCommandWithResultV3(TestCommandInputV2 input) : base(input)
@@ -291,12 +291,12 @@ public sealed class TestAsyncCommandWithResultV3 : AbstractAsyncCommand
- /// 获取命令是否已执行
+ /// 获取命令是否已执行
///
public bool Executed { get; private set; }
///
- /// 执行异步命令并返回结果的重写方法
+ /// 执行异步命令并返回结果的重写方法
///
/// 命令输入
/// 执行结果的异步任务
@@ -308,12 +308,12 @@ public sealed class TestAsyncCommandWithResultV3 : AbstractAsyncCommand
-/// 测试用异步命令类(抛出异常)
+/// 测试用异步命令类(抛出异常)
///
public sealed class TestAsyncCommandWithExceptionV3 : AbstractAsyncCommand
{
///
- /// 构造函数
+ /// 构造函数
///
/// 命令输入
public TestAsyncCommandWithExceptionV3(TestCommandInputV2 input) : base(input)
@@ -321,7 +321,7 @@ public sealed class TestAsyncCommandWithExceptionV3 : AbstractAsyncCommand
- /// 执行异步命令并抛出异常的重写方法
+ /// 执行异步命令并抛出异常的重写方法
///
/// 命令输入
/// 表示异步操作的任务
@@ -333,12 +333,12 @@ public sealed class TestAsyncCommandWithExceptionV3 : AbstractAsyncCommand
-/// 测试用异步命令子类(无返回值)
+/// 测试用异步命令子类(无返回值)
///
public sealed class TestAsyncCommandChildV3 : AbstractAsyncCommand
{
///
- /// 构造函数
+ /// 构造函数
///
/// 命令输入
public TestAsyncCommandChildV3(TestCommandInputV2 input) : base(input)
@@ -346,17 +346,17 @@ public sealed class TestAsyncCommandChildV3 : AbstractAsyncCommand
- /// 获取命令是否已执行
+ /// 获取命令是否已执行
///
public bool Executed { get; private set; }
///
- /// 获取执行的值
+ /// 获取执行的值
///
public int ExecutedValue { get; private set; }
///
- /// 执行异步命令的重写方法(子类实现)
+ /// 执行异步命令的重写方法(子类实现)
///
/// 命令输入
/// 表示异步操作的任务
@@ -369,12 +369,12 @@ public sealed class TestAsyncCommandChildV3 : AbstractAsyncCommand
-/// 测试用异步命令子类(有返回值)
+/// 测试用异步命令子类(有返回值)
///
public sealed class TestAsyncCommandWithResultChildV3 : AbstractAsyncCommand
{
///
- /// 构造函数
+ /// 构造函数
///
/// 命令输入
public TestAsyncCommandWithResultChildV3(TestCommandInputV2 input) : base(input)
@@ -382,12 +382,12 @@ public sealed class TestAsyncCommandWithResultChildV3 : AbstractAsyncCommand
- /// 获取命令是否已执行
+ /// 获取命令是否已执行
///
public bool Executed { get; private set; }
///
- /// 执行异步命令并返回结果的重写方法(子类实现)
+ /// 执行异步命令并返回结果的重写方法(子类实现)
///
/// 命令输入
/// 执行结果的异步任务
diff --git a/GFramework.Core.Tests/command/CommandBusTests.cs b/GFramework.Core.Tests/command/CommandBusTests.cs
index 07a6f48..2b0f032 100644
--- a/GFramework.Core.Tests/command/CommandBusTests.cs
+++ b/GFramework.Core.Tests/command/CommandBusTests.cs
@@ -5,16 +5,16 @@ using NUnit.Framework;
namespace GFramework.Core.Tests.command;
///
-/// CommandBus类的单元测试
-/// 测试内容包括:
-/// - Send方法执行命令
-/// - Send方法处理null命令
-/// - Send方法(带返回值)返回值
-/// - Send方法(带返回值)处理null命令
-/// - SendAsync方法执行异步命令
-/// - SendAsync方法处理null异步命令
-/// - SendAsync方法(带返回值)返回值
-/// - SendAsync方法(带返回值)处理null异步命令
+/// CommandBus类的单元测试
+/// 测试内容包括:
+/// - Send方法执行命令
+/// - Send方法处理null命令
+/// - Send方法(带返回值)返回值
+/// - Send方法(带返回值)处理null命令
+/// - SendAsync方法执行异步命令
+/// - SendAsync方法处理null异步命令
+/// - SendAsync方法(带返回值)返回值
+/// - SendAsync方法(带返回值)处理null异步命令
///
[TestFixture]
public class CommandBusTests
@@ -28,7 +28,7 @@ public class CommandBusTests
private CommandBus _commandBus = null!;
///
- /// 测试Send方法执行命令
+ /// 测试Send方法执行命令
///
[Test]
public void Send_Should_Execute_Command()
@@ -42,7 +42,7 @@ public class CommandBusTests
}
///
- /// 测试Send方法处理null命令时抛出ArgumentNullException异常
+ /// 测试Send方法处理null命令时抛出ArgumentNullException异常
///
[Test]
public void Send_WithNullCommand_Should_ThrowArgumentNullException()
@@ -51,7 +51,7 @@ public class CommandBusTests
}
///
- /// 测试Send方法(带返回值)正确返回值
+ /// 测试Send方法(带返回值)正确返回值
///
[Test]
public void Send_WithResult_Should_Return_Value()
@@ -66,7 +66,7 @@ public class CommandBusTests
}
///
- /// 测试Send方法(带返回值)处理null命令时抛出ArgumentNullException异常
+ /// 测试Send方法(带返回值)处理null命令时抛出ArgumentNullException异常
///
[Test]
public void Send_WithResult_AndNullCommand_Should_ThrowArgumentNullException()
@@ -75,7 +75,7 @@ public class CommandBusTests
}
///
- /// 测试SendAsync方法执行异步命令
+ /// 测试SendAsync方法执行异步命令
///
[Test]
public async Task SendAsync_Should_Execute_AsyncCommand()
@@ -90,7 +90,7 @@ public class CommandBusTests
}
///
- /// 测试SendAsync方法处理null异步命令时抛出ArgumentNullException异常
+ /// 测试SendAsync方法处理null异步命令时抛出ArgumentNullException异常
///
[Test]
public void SendAsync_WithNullCommand_Should_ThrowArgumentNullException()
@@ -99,7 +99,7 @@ public class CommandBusTests
}
///
- /// 测试SendAsync方法(带返回值)正确返回值
+ /// 测试SendAsync方法(带返回值)正确返回值
///
[Test]
public async Task SendAsync_WithResult_Should_Return_Value()
@@ -114,7 +114,7 @@ public class CommandBusTests
}
///
- /// 测试SendAsync方法(带返回值)处理null异步命令时抛出ArgumentNullException异常
+ /// 测试SendAsync方法(带返回值)处理null异步命令时抛出ArgumentNullException异常
///
[Test]
public void SendAsync_WithResult_AndNullCommand_Should_ThrowArgumentNullException()
@@ -124,23 +124,23 @@ public class CommandBusTests
}
///
-/// 测试用命令输入类,实现ICommandInput接口
+/// 测试用命令输入类,实现ICommandInput接口
///
public sealed class TestCommandInput : ICommandInput
{
///
- /// 获取或设置值
+ /// 获取或设置值
///
public int Value { get; init; }
}
///
-/// 测试用命令类,继承AbstractCommand
+/// 测试用命令类,继承AbstractCommand
///
public sealed class TestCommand : AbstractCommand
{
///
- /// 构造函数
+ /// 构造函数
///
/// 命令输入
public TestCommand(TestCommandInput input) : base(input)
@@ -148,17 +148,17 @@ public sealed class TestCommand : AbstractCommand
}
///
- /// 获取命令是否已执行
+ /// 获取命令是否已执行
///
public bool Executed { get; private set; }
///
- /// 获取执行的值
+ /// 获取执行的值
///
public int ExecutedValue { get; private set; }
///
- /// 执行命令的重写方法
+ /// 执行命令的重写方法
///
/// 命令输入
protected override void OnExecute(TestCommandInput input)
@@ -169,12 +169,12 @@ public sealed class TestCommand : AbstractCommand
}
///
-/// 测试用带返回值的命令类,继承AbstractCommand
+/// 测试用带返回值的命令类,继承AbstractCommand
///
public sealed class TestCommandWithResult : AbstractCommand
{
///
- /// 构造函数
+ /// 构造函数
///
/// 命令输入
public TestCommandWithResult(TestCommandInput input) : base(input)
@@ -182,12 +182,12 @@ public sealed class TestCommandWithResult : AbstractCommand
- /// 获取命令是否已执行
+ /// 获取命令是否已执行
///
public bool Executed { get; private set; }
///
- /// 执行命令并返回结果的重写方法
+ /// 执行命令并返回结果的重写方法
///
/// 命令输入
/// 执行结果
@@ -199,12 +199,12 @@ public sealed class TestCommandWithResult : AbstractCommand
-/// 测试用异步命令类,继承AbstractAsyncCommand
+/// 测试用异步命令类,继承AbstractAsyncCommand
///
public sealed class TestAsyncCommand : AbstractAsyncCommand
{
///
- /// 构造函数
+ /// 构造函数
///
/// 命令输入
public TestAsyncCommand(TestCommandInput input) : base(input)
@@ -212,17 +212,17 @@ public sealed class TestAsyncCommand : AbstractAsyncCommand
}
///
- /// 获取命令是否已执行
+ /// 获取命令是否已执行
///
public bool Executed { get; private set; }
///
- /// 获取执行的值
+ /// 获取执行的值
///
public int ExecutedValue { get; private set; }
///
- /// 执行异步命令的重写方法
+ /// 执行异步命令的重写方法
///
/// 命令输入
/// 表示异步操作的任务
@@ -235,12 +235,12 @@ public sealed class TestAsyncCommand : AbstractAsyncCommand
}
///
-/// 测试用带返回值的异步命令类,继承AbstractAsyncCommand
+/// 测试用带返回值的异步命令类,继承AbstractAsyncCommand
///
public sealed class TestAsyncCommandWithResult : AbstractAsyncCommand
{
///
- /// 构造函数
+ /// 构造函数
///
/// 命令输入
public TestAsyncCommandWithResult(TestCommandInput input) : base(input)
@@ -248,12 +248,12 @@ public sealed class TestAsyncCommandWithResult : AbstractAsyncCommand
- /// 获取命令是否已执行
+ /// 获取命令是否已执行
///
public bool Executed { get; private set; }
///
- /// 执行异步命令并返回结果的重写方法
+ /// 执行异步命令并返回结果的重写方法
///
/// 命令输入
/// 执行结果的异步任务
diff --git a/GFramework.Core.Tests/constants/GFrameworkConstantsTests.cs b/GFramework.Core.Tests/constants/GFrameworkConstantsTests.cs
index 99f2894..185ae71 100644
--- a/GFramework.Core.Tests/constants/GFrameworkConstantsTests.cs
+++ b/GFramework.Core.Tests/constants/GFrameworkConstantsTests.cs
@@ -4,19 +4,19 @@ using NUnit.Framework;
namespace GFramework.Core.Tests.constants;
///
-/// GFrameworkConstants类的单元测试
-/// 测试内容包括:
-/// - 版本号常量格式正确性
-/// - 其他框架常量
-/// - 常量值正确性
-/// - 常量类型验证
-/// - 常量可访问性
+/// GFrameworkConstants类的单元测试
+/// 测试内容包括:
+/// - 版本号常量格式正确性
+/// - 其他框架常量
+/// - 常量值正确性
+/// - 常量类型验证
+/// - 常量可访问性
///
[TestFixture]
public class GFrameworkConstantsTests
{
///
- /// 测试FrameworkName常量的值正确性
+ /// 测试FrameworkName常量的值正确性
///
[Test]
public void FrameworkName_Should_Have_Correct_Value()
@@ -25,7 +25,7 @@ public class GFrameworkConstantsTests
}
///
- /// 测试FrameworkName常量的类型
+ /// 测试FrameworkName常量的类型
///
[Test]
public void FrameworkName_Should_Be_String_Type()
@@ -34,7 +34,7 @@ public class GFrameworkConstantsTests
}
///
- /// 测试FrameworkName常量不为空
+ /// 测试FrameworkName常量不为空
///
[Test]
public void FrameworkName_Should_Not_Be_Null_Or_Empty()
@@ -44,7 +44,7 @@ public class GFrameworkConstantsTests
}
///
- /// 测试FrameworkName常量是公共可访问的
+ /// 测试FrameworkName常量是公共可访问的
///
[Test]
public void FrameworkName_Should_Be_Publicly_Accessible()
@@ -58,7 +58,7 @@ public class GFrameworkConstantsTests
}
///
- /// 测试FrameworkName常量是只读的(const)
+ /// 测试FrameworkName常量是只读的(const)
///
[Test]
public void FrameworkName_Should_Be_Constant()
diff --git a/GFramework.Core.Tests/coroutine/AsyncOperationTests.cs b/GFramework.Core.Tests/coroutine/AsyncOperationTests.cs
index fb41180..15c6f94 100644
--- a/GFramework.Core.Tests/coroutine/AsyncOperationTests.cs
+++ b/GFramework.Core.Tests/coroutine/AsyncOperationTests.cs
@@ -5,20 +5,20 @@ using NUnit.Framework;
namespace GFramework.Core.Tests.coroutine;
///
-/// AsyncOperation的单元测试类
-/// 测试内容包括:
-/// - 初始化状态
-/// - 完成和状态检查
-/// - 异常处理
-/// - 延续操作
-/// - GetAwaiter
-/// - IsCompleted属性
+/// AsyncOperation的单元测试类
+/// 测试内容包括:
+/// - 初始化状态
+/// - 完成和状态检查
+/// - 异常处理
+/// - 延续操作
+/// - GetAwaiter
+/// - IsCompleted属性
///
[TestFixture]
public class AsyncOperationTests
{
///
- /// 验证AsyncOperation初始状态为未完成
+ /// 验证AsyncOperation初始状态为未完成
///
[Test]
public void AsyncOperation_Should_Not_Be_Done_Initially()
@@ -29,7 +29,7 @@ public class AsyncOperationTests
}
///
- /// 验证AsyncOperation初始状态IsCompleted为false
+ /// 验证AsyncOperation初始状态IsCompleted为false
///
[Test]
public void AsyncOperation_Should_Not_Be_Completed_Initially()
@@ -40,7 +40,7 @@ public class AsyncOperationTests
}
///
- /// 验证SetCompleted后IsDone应该为true
+ /// 验证SetCompleted后IsDone应该为true
///
[Test]
public void SetCompleted_Should_Set_IsDone_To_True()
@@ -53,7 +53,7 @@ public class AsyncOperationTests
}
///
- /// 验证SetCompleted后IsCompleted应该为true
+ /// 验证SetCompleted后IsCompleted应该为true
///
[Test]
public void SetCompleted_Should_Set_IsCompleted_To_True()
@@ -66,7 +66,7 @@ public class AsyncOperationTests
}
///
- /// 验证SetCompleted只能被调用一次
+ /// 验证SetCompleted只能被调用一次
///
[Test]
public void SetCompleted_Should_Be_Idempotent()
@@ -81,7 +81,7 @@ public class AsyncOperationTests
}
///
- /// 验证SetException后IsDone应该为true
+ /// 验证SetException后IsDone应该为true
///
[Test]
public void SetException_Should_Set_IsDone_To_True()
@@ -94,7 +94,7 @@ public class AsyncOperationTests
}
///
- /// 验证SetException后Task应该包含异常
+ /// 验证SetException后Task应该包含异常
///
[Test]
public void SetException_Should_Set_Exception_On_Task()
@@ -108,7 +108,7 @@ public class AsyncOperationTests
}
///
- /// 验证OnCompleted应该在已完成时立即执行延续
+ /// 验证OnCompleted应该在已完成时立即执行延续
///
[Test]
public void OnCompleted_Should_Execute_Immediately_When_Already_Completed()
@@ -123,7 +123,7 @@ public class AsyncOperationTests
}
///
- /// 验证OnCompleted应该在未完成时不立即执行延续
+ /// 验证OnCompleted应该在未完成时不立即执行延续
///
[Test]
public void OnCompleted_Should_Not_Execute_Immediately_When_Not_Completed()
@@ -137,7 +137,7 @@ public class AsyncOperationTests
}
///
- /// 验证延续应该在SetCompleted后被调用
+ /// 验证延续应该在SetCompleted后被调用
///
[Test]
public void Continuation_Should_Be_Called_After_SetCompleted()
@@ -152,7 +152,7 @@ public class AsyncOperationTests
}
///
- /// 验证多个延续应该都能被调用
+ /// 验证多个延续应该都能被调用
///
[Test]
public void Multiple_Continuations_Should_All_Be_Called()
@@ -169,7 +169,7 @@ public class AsyncOperationTests
}
///
- /// 验证延续应该在SetException后被调用
+ /// 验证延续应该在SetException后被调用
///
[Test]
public void Continuation_Should_Be_Called_After_SetException()
@@ -184,7 +184,7 @@ public class AsyncOperationTests
}
///
- /// 验证SetCompleted后设置的延续也应该被调用
+ /// 验证SetCompleted后设置的延续也应该被调用
///
[Test]
public void Continuation_Registered_After_Completed_Should_Be_Called()
@@ -202,7 +202,7 @@ public class AsyncOperationTests
}
///
- /// 验证GetAwaiter应该返回自身
+ /// 验证GetAwaiter应该返回自身
///
[Test]
public void GetAwaiter_Should_Return_Self()
@@ -215,7 +215,7 @@ public class AsyncOperationTests
}
///
- /// 验证Update方法不应该改变状态
+ /// 验证Update方法不应该改变状态
///
[Test]
public void Update_Should_Not_Change_State()
@@ -228,7 +228,7 @@ public class AsyncOperationTests
}
///
- /// 验证AsyncOperation实现IYieldInstruction接口
+ /// 验证AsyncOperation实现IYieldInstruction接口
///
[Test]
public void AsyncOperation_Should_Implement_IYieldInstruction()
@@ -239,7 +239,7 @@ public class AsyncOperationTests
}
///
- /// 验证Task属性应该返回有效的Task
+ /// 验证Task属性应该返回有效的Task
///
[Test]
public void Task_Property_Should_Return_Valid_Task()
@@ -250,7 +250,7 @@ public class AsyncOperationTests
}
///
- /// 验证SetCompleted后Task应该完成
+ /// 验证SetCompleted后Task应该完成
///
[Test]
public async Task Task_Should_Complete_After_SetCompleted()
@@ -265,7 +265,7 @@ public class AsyncOperationTests
}
///
- /// 验证SetException后Task应该失败
+ /// 验证SetException后Task应该失败
///
[Test]
public void Task_Should_Fault_After_SetException()
@@ -278,7 +278,7 @@ public class AsyncOperationTests
}
///
- /// 验证SetCompleted只能设置一次
+ /// 验证SetCompleted只能设置一次
///
[Test]
public void SetCompleted_Should_Only_Set_Once()
@@ -298,7 +298,7 @@ public class AsyncOperationTests
}
///
- /// 验证SetException只能在未完成时设置
+ /// 验证SetException只能在未完成时设置
///
[Test]
public void SetException_Should_Not_Work_After_SetCompleted()
@@ -313,7 +313,7 @@ public class AsyncOperationTests
}
///
- /// 验证SetCompleted不能在SetException后设置
+ /// 验证SetCompleted不能在SetException后设置
///
[Test]
public void SetCompleted_Should_Not_Work_After_SetException()
@@ -328,7 +328,7 @@ public class AsyncOperationTests
}
///
- /// 验证延续抛出的异常应该被捕获
+ /// 验证延续抛出的异常应该被捕获
///
[Test]
public void Continuation_Exception_Should_Be_Caught()
@@ -339,4 +339,4 @@ public class AsyncOperationTests
Assert.DoesNotThrow(() => op.SetCompleted());
}
-}
+}
\ No newline at end of file
diff --git a/GFramework.Core.Tests/coroutine/CoroutineExtensionsTests.cs b/GFramework.Core.Tests/coroutine/CoroutineExtensionsTests.cs
index 2d1f3e4..37f0895 100644
--- a/GFramework.Core.Tests/coroutine/CoroutineExtensionsTests.cs
+++ b/GFramework.Core.Tests/coroutine/CoroutineExtensionsTests.cs
@@ -7,19 +7,19 @@ using NUnit.Framework;
namespace GFramework.Core.Tests.coroutine;
///
-/// 协程扩展方法的单元测试类
-/// 测试内容包括:
-/// - RepeatEvery方法
-/// - ExecuteAfter方法
-/// - Sequence方法
-/// - ParallelCoroutines方法
-/// - WaitForSecondsWithProgress方法
+/// 协程扩展方法的单元测试类
+/// 测试内容包括:
+/// - RepeatEvery方法
+/// - ExecuteAfter方法
+/// - Sequence方法
+/// - ParallelCoroutines方法
+/// - WaitForSecondsWithProgress方法
///
[TestFixture]
public class CoroutineExtensionsTests
{
///
- /// 验证RepeatEvery应该返回有效的协程
+ /// 验证RepeatEvery应该返回有效的协程
///
[Test]
public void RepeatEvery_Should_Return_Valid_Coroutine()
@@ -31,7 +31,7 @@ public class CoroutineExtensionsTests
}
///
- /// 验证RepeatEvery应该执行指定次数
+ /// 验证RepeatEvery应该执行指定次数
///
[Test]
public void RepeatEvery_Should_Execute_Specified_Times()
@@ -39,16 +39,13 @@ public class CoroutineExtensionsTests
var callCount = 0;
var coroutine = CoroutineExtensions.RepeatEvery(0.1, () => callCount++, 3);
- while (coroutine.MoveNext())
- {
- coroutine.Current.Update(0.1);
- }
+ while (coroutine.MoveNext()) coroutine.Current.Update(0.1);
Assert.That(callCount, Is.EqualTo(3));
}
///
- /// 验证RepeatEvery应该无限执行当count为null
+ /// 验证RepeatEvery应该无限执行当count为null
///
[Test]
public void RepeatEvery_Should_Execute_Forever_When_Count_Is_Null()
@@ -67,7 +64,7 @@ public class CoroutineExtensionsTests
}
///
- /// 验证RepeatEvery应该处理负数count
+ /// 验证RepeatEvery应该处理负数count
///
[Test]
public void RepeatEvery_Should_Handle_Negative_Count()
@@ -80,7 +77,7 @@ public class CoroutineExtensionsTests
}
///
- /// 验证RepeatEvery应该处理零count
+ /// 验证RepeatEvery应该处理零count
///
[Test]
public void RepeatEvery_Should_Handle_Zero_Count()
@@ -93,24 +90,21 @@ public class CoroutineExtensionsTests
}
///
- /// 验证RepeatEvery应该处理null action
+ /// 验证RepeatEvery应该处理null action
///
[Test]
public void RepeatEvery_Should_Handle_Null_Action()
{
var coroutine = CoroutineExtensions.RepeatEvery(0.1, null, 3);
- Assert.DoesNotThrow(() =>
+ Assert.DoesNotThrow(() =>
{
- while (coroutine.MoveNext())
- {
- coroutine.Current.Update(0.1);
- }
+ while (coroutine.MoveNext()) coroutine.Current.Update(0.1);
});
}
///
- /// 验证ExecuteAfter应该返回有效的协程
+ /// 验证ExecuteAfter应该返回有效的协程
///
[Test]
public void ExecuteAfter_Should_Return_Valid_Coroutine()
@@ -122,7 +116,7 @@ public class CoroutineExtensionsTests
}
///
- /// 验证ExecuteAfter应该在延迟后执行action
+ /// 验证ExecuteAfter应该在延迟后执行action
///
[Test]
public void ExecuteAfter_Should_Execute_Action_After_Delay()
@@ -144,7 +138,7 @@ public class CoroutineExtensionsTests
}
///
- /// 验证ExecuteAfter应该处理零延迟
+ /// 验证ExecuteAfter应该处理零延迟
///
[Test]
public void ExecuteAfter_Should_Handle_Zero_Delay()
@@ -159,7 +153,7 @@ public class CoroutineExtensionsTests
}
///
- /// 验证ExecuteAfter应该处理负数延迟
+ /// 验证ExecuteAfter应该处理负数延迟
///
[Test]
public void ExecuteAfter_Should_Handle_Negative_Delay()
@@ -172,14 +166,14 @@ public class CoroutineExtensionsTests
}
///
- /// 验证ExecuteAfter应该处理null action
+ /// 验证ExecuteAfter应该处理null action
///
[Test]
public void ExecuteAfter_Should_Handle_Null_Action()
{
var coroutine = CoroutineExtensions.ExecuteAfter(1.0, null);
- Assert.DoesNotThrow(() =>
+ Assert.DoesNotThrow(() =>
{
coroutine.MoveNext();
coroutine.Current.Update(1.0);
@@ -187,7 +181,7 @@ public class CoroutineExtensionsTests
}
///
- /// 验证Sequence应该返回有效的协程
+ /// 验证Sequence应该返回有效的协程
///
[Test]
public void Sequence_Should_Return_Valid_Coroutine()
@@ -200,7 +194,7 @@ public class CoroutineExtensionsTests
}
///
- /// 验证Sequence应该按顺序执行多个协程
+ /// 验证Sequence应该按顺序执行多个协程
///
[Test]
public void Sequence_Should_Execute_Coroutines_In_Order()
@@ -212,16 +206,13 @@ public class CoroutineExtensionsTests
var sequence = CoroutineExtensions.Sequence(coroutine1, coroutine2, coroutine3);
- while (sequence.MoveNext())
- {
- sequence.Current.Update(0.1);
- }
+ while (sequence.MoveNext()) sequence.Current.Update(0.1);
Assert.That(executionOrder, Is.EqualTo(new List { 1, 2, 3 }));
}
///
- /// 验证Sequence应该处理空协程数组
+ /// 验证Sequence应该处理空协程数组
///
[Test]
public void Sequence_Should_Handle_Empty_Coroutines()
@@ -232,7 +223,7 @@ public class CoroutineExtensionsTests
}
///
- /// 验证Sequence应该处理单个协程
+ /// 验证Sequence应该处理单个协程
///
[Test]
public void Sequence_Should_Handle_Single_Coroutine()
@@ -244,7 +235,7 @@ public class CoroutineExtensionsTests
}
///
- /// 验证Sequence应该处理null协程
+ /// 验证Sequence应该处理null协程
///
[Test]
public void Sequence_Should_Handle_Null_Coroutine()
@@ -252,23 +243,20 @@ public class CoroutineExtensionsTests
var coroutine1 = CreateSimpleCoroutine();
var sequence = CoroutineExtensions.Sequence(coroutine1, null!);
- Assert.Throws(() =>
+ Assert.Throws(() =>
{
- while (sequence.MoveNext())
- {
- sequence.Current.Update(0.1);
- }
+ while (sequence.MoveNext()) sequence.Current.Update(0.1);
});
}
///
- /// 验证ParallelCoroutines应该返回有效的协程
+ /// 验证ParallelCoroutines应该返回有效的协程
///
[Test]
public void ParallelCoroutines_Should_Return_Valid_Coroutine()
{
var timeSource = new TestTimeSource();
- var scheduler = new CoroutineScheduler(timeSource, instanceId: 1);
+ var scheduler = new CoroutineScheduler(timeSource, 1);
var coroutine1 = CreateSimpleCoroutine();
var coroutine2 = CreateSimpleCoroutine();
@@ -278,13 +266,13 @@ public class CoroutineExtensionsTests
}
///
- /// 验证ParallelCoroutines应该并行执行多个协程
+ /// 验证ParallelCoroutines应该并行执行多个协程
///
[Test]
public void ParallelCoroutines_Should_Execute_Coroutines_In_Parallel()
{
var timeSource = new TestTimeSource();
- var scheduler = new CoroutineScheduler(timeSource, instanceId: 1);
+ var scheduler = new CoroutineScheduler(timeSource, 1);
var executionCounts = new Dictionary { { 1, 0 }, { 2, 0 }, { 3, 0 } };
var coroutine1 = CreateDelayedCoroutine(() => executionCounts[1]++, 0.5);
@@ -297,10 +285,7 @@ public class CoroutineExtensionsTests
Assert.That(scheduler.ActiveCoroutineCount, Is.GreaterThan(0));
- while (scheduler.ActiveCoroutineCount > 0)
- {
- scheduler.Update();
- }
+ while (scheduler.ActiveCoroutineCount > 0) scheduler.Update();
Assert.That(executionCounts[1], Is.EqualTo(1));
Assert.That(executionCounts[2], Is.EqualTo(1));
@@ -308,13 +293,13 @@ public class CoroutineExtensionsTests
}
///
- /// 验证ParallelCoroutines应该处理空数组
+ /// 验证ParallelCoroutines应该处理空数组
///
[Test]
public void ParallelCoroutines_Should_Handle_Empty_Array()
{
var timeSource = new TestTimeSource();
- var scheduler = new CoroutineScheduler(timeSource, instanceId: 1);
+ var scheduler = new CoroutineScheduler(timeSource, 1);
var parallel = scheduler.ParallelCoroutines();
@@ -322,13 +307,13 @@ public class CoroutineExtensionsTests
}
///
- /// 验证ParallelCoroutines应该处理null数组
+ /// 验证ParallelCoroutines应该处理null数组
///
[Test]
public void ParallelCoroutines_Should_Handle_Null_Array()
{
var timeSource = new TestTimeSource();
- var scheduler = new CoroutineScheduler(timeSource, instanceId: 1);
+ var scheduler = new CoroutineScheduler(timeSource, 1);
var parallel = scheduler.ParallelCoroutines(null);
@@ -336,7 +321,7 @@ public class CoroutineExtensionsTests
}
///
- /// 验证WaitForSecondsWithProgress应该返回有效的协程
+ /// 验证WaitForSecondsWithProgress应该返回有效的协程
///
[Test]
public void WaitForSecondsWithProgress_Should_Return_Valid_Coroutine()
@@ -348,7 +333,7 @@ public class CoroutineExtensionsTests
}
///
- /// 验证WaitForSecondsWithProgress应该在指定时间后完成
+ /// 验证WaitForSecondsWithProgress应该在指定时间后完成
///
[Test]
public void WaitForSecondsWithProgress_Should_Complete_After_Duration()
@@ -364,7 +349,7 @@ public class CoroutineExtensionsTests
}
///
- /// 验证WaitForSecondsWithProgress应该调用进度回调
+ /// 验证WaitForSecondsWithProgress应该调用进度回调
///
[Test]
public void WaitForSecondsWithProgress_Should_Call_Progress_Callback()
@@ -374,10 +359,7 @@ public class CoroutineExtensionsTests
coroutine.MoveNext();
- while (!coroutine.Current.IsDone)
- {
- coroutine.Current.Update(0.1);
- }
+ while (!coroutine.Current.IsDone) coroutine.Current.Update(0.1);
Assert.That(progressValues.Count, Is.GreaterThan(0));
Assert.That(progressValues[0], Is.EqualTo(0.0f).Within(0.01f));
@@ -385,7 +367,7 @@ public class CoroutineExtensionsTests
}
///
- /// 验证WaitForSecondsWithProgress应该处理零时间
+ /// 验证WaitForSecondsWithProgress应该处理零时间
///
[Test]
public void WaitForSecondsWithProgress_Should_Handle_Zero_Duration()
@@ -398,7 +380,7 @@ public class CoroutineExtensionsTests
}
///
- /// 验证WaitForSecondsWithProgress应该处理负数时间
+ /// 验证WaitForSecondsWithProgress应该处理负数时间
///
[Test]
public void WaitForSecondsWithProgress_Should_Handle_Negative_Duration()
@@ -411,7 +393,7 @@ public class CoroutineExtensionsTests
}
///
- /// 验证WaitForSecondsWithProgress应该处理null回调
+ /// 验证WaitForSecondsWithProgress应该处理null回调
///
[Test]
public void WaitForSecondsWithProgress_Should_Handle_Null_Callback()
@@ -427,7 +409,7 @@ public class CoroutineExtensionsTests
}
///
- /// 验证RepeatEvery应该使用Delay指令
+ /// 验证RepeatEvery应该使用Delay指令
///
[Test]
public void RepeatEvery_Should_Use_Delay_Instruction()
@@ -439,7 +421,7 @@ public class CoroutineExtensionsTests
}
///
- /// 验证ExecuteAfter应该使用Delay指令
+ /// 验证ExecuteAfter应该使用Delay指令
///
[Test]
public void ExecuteAfter_Should_Use_Delay_Instruction()
@@ -451,7 +433,7 @@ public class CoroutineExtensionsTests
}
///
- /// 验证Sequence应该清理已完成的协程
+ /// 验证Sequence应该清理已完成的协程
///
[Test]
public void Sequence_Should_Dispose_Completed_Coroutines()
@@ -461,16 +443,13 @@ public class CoroutineExtensionsTests
var sequence = CoroutineExtensions.Sequence(coroutine1, coroutine2);
- while (sequence.MoveNext())
- {
- sequence.Current.Update(0.1);
- }
+ while (sequence.MoveNext()) sequence.Current.Update(0.1);
Assert.That(sequence.MoveNext(), Is.False);
}
///
- /// 验证RepeatEvery的间隔时间
+ /// 验证RepeatEvery的间隔时间
///
[Test]
public void RepeatEvery_Should_Respect_Interval()
@@ -489,7 +468,7 @@ public class CoroutineExtensionsTests
}
///
- /// 验证ExecuteAfter的延迟时间
+ /// 验证ExecuteAfter的延迟时间
///
[Test]
public void ExecuteAfter_Should_Respect_Delay()
@@ -513,7 +492,7 @@ public class CoroutineExtensionsTests
}
///
- /// 创建简单的立即完成协程
+ /// 创建简单的立即完成协程
///
private IEnumerator CreateSimpleCoroutine()
{
@@ -521,7 +500,7 @@ public class CoroutineExtensionsTests
}
///
- /// 创建带回调的协程
+ /// 创建带回调的协程
///
private IEnumerator CreateCoroutineWithCallback(int id, Action callback)
{
@@ -530,7 +509,7 @@ public class CoroutineExtensionsTests
}
///
- /// 创建计数协程
+ /// 创建计数协程
///
private IEnumerator CreateCountingCoroutine(int id, Action callback)
{
@@ -539,7 +518,7 @@ public class CoroutineExtensionsTests
}
///
- /// 创建延迟协程
+ /// 创建延迟协程
///
private IEnumerator CreateDelayedCoroutine(Action callback, double delay)
{
@@ -548,7 +527,7 @@ public class CoroutineExtensionsTests
}
///
- /// 测试用时间源类
+ /// 测试用时间源类
///
private class TestTimeSource : ITimeSource
{
@@ -561,4 +540,4 @@ public class CoroutineExtensionsTests
CurrentTime += DeltaTime;
}
}
-}
+}
\ No newline at end of file
diff --git a/GFramework.Core.Tests/coroutine/CoroutineHandleTests.cs b/GFramework.Core.Tests/coroutine/CoroutineHandleTests.cs
index 2b51a49..c9ca14c 100644
--- a/GFramework.Core.Tests/coroutine/CoroutineHandleTests.cs
+++ b/GFramework.Core.Tests/coroutine/CoroutineHandleTests.cs
@@ -4,19 +4,19 @@ using NUnit.Framework;
namespace GFramework.Core.Tests.coroutine;
///
-/// 协程句柄的单元测试类
-/// 测试内容包括:
-/// - 协程句柄创建和有效性验证
-/// - 相等性比较
-/// - 哈希码生成
-/// - 操作符重载
-/// - 多实例独立性
+/// 协程句柄的单元测试类
+/// 测试内容包括:
+/// - 协程句柄创建和有效性验证
+/// - 相等性比较
+/// - 哈希码生成
+/// - 操作符重载
+/// - 多实例独立性
///
[TestFixture]
public class CoroutineHandleTests
{
///
- /// 验证协程句柄创建时应有有效的Key
+ /// 验证协程句柄创建时应有有效的Key
///
[Test]
public void CoroutineHandle_Should_Have_Valid_Key_When_Created()
@@ -28,7 +28,7 @@ public class CoroutineHandleTests
}
///
- /// 验证默认协程句柄应该无效
+ /// 验证默认协程句柄应该无效
///
[Test]
public void Default_CoroutineHandle_Should_Be_Invalid()
@@ -40,7 +40,7 @@ public class CoroutineHandleTests
}
///
- /// 验证相同实例ID创建的句柄应该具有不同的Key
+ /// 验证相同实例ID创建的句柄应该具有不同的Key
///
[Test]
public void CoroutineHandles_With_Same_InstanceId_Should_Have_Different_Keys()
@@ -52,7 +52,7 @@ public class CoroutineHandleTests
}
///
- /// 验证不同实例ID创建的句柄应该不同
+ /// 验证不同实例ID创建的句柄应该不同
///
[Test]
public void CoroutineHandles_With_Different_InstanceIds_Should_Be_Different()
@@ -64,7 +64,7 @@ public class CoroutineHandleTests
}
///
- /// 验证协程句柄的相等性比较
+ /// 验证协程句柄的相等性比较
///
[Test]
public void Equals_Should_Return_True_For_Identical_Handles()
@@ -76,7 +76,7 @@ public class CoroutineHandleTests
}
///
- /// 验证协程句柄的不相等性比较
+ /// 验证协程句柄的不相等性比较
///
[Test]
public void Equals_Should_Return_False_For_Different_Handles()
@@ -93,7 +93,7 @@ public class CoroutineHandleTests
///
- /// 验证Equals方法与null对象的比较
+ /// 验证Equals方法与null对象的比较
///
[Test]
public void Equals_Should_Return_False_When_Comparing_To_Null()
@@ -104,7 +104,7 @@ public class CoroutineHandleTests
}
///
- /// 验证Equals方法与其他类型对象的比较
+ /// 验证Equals方法与其他类型对象的比较
///
[Test]
public void Equals_Should_Return_False_When_Comparing_To_Other_Type()
@@ -115,7 +115,7 @@ public class CoroutineHandleTests
}
///
- /// 验证哈希码的一致性
+ /// 验证哈希码的一致性
///
[Test]
public void GetHashCode_Should_Be_Consistent()
@@ -128,7 +128,7 @@ public class CoroutineHandleTests
}
///
- /// 验证不同句柄应该有不同的哈希码
+ /// 验证不同句柄应该有不同的哈希码
///
[Test]
public void GetHashCode_Should_Be_Different_For_Different_Handles()
@@ -140,7 +140,7 @@ public class CoroutineHandleTests
}
///
- /// 验证相等操作符的正确性
+ /// 验证相等操作符的正确性
///
[Test]
public void EqualityOperator_Should_Work_Correctly()
@@ -154,7 +154,7 @@ public class CoroutineHandleTests
}
///
- /// 验证不等操作符的正确性
+ /// 验证不等操作符的正确性
///
[Test]
public void InequalityOperator_Should_Work_Correctly()
@@ -168,7 +168,7 @@ public class CoroutineHandleTests
}
///
- /// 验证协程句柄实现了IEquatable接口
+ /// 验证协程句柄实现了IEquatable接口
///
[Test]
public void CoroutineHandle_Should_Implement_IEquatable_Interface()
@@ -179,7 +179,7 @@ public class CoroutineHandleTests
}
///
- /// 验证协程句柄是只读结构体
+ /// 验证协程句柄是只读结构体
///
[Test]
public void CoroutineHandle_Should_Be_Immutable_Struct()
@@ -189,7 +189,7 @@ public class CoroutineHandleTests
}
///
- /// 验证实例ID超过预留空间时的处理
+ /// 验证实例ID超过预留空间时的处理
///
[Test]
public void CoroutineHandle_Should_Handle_Large_InstanceId()
@@ -201,25 +201,19 @@ public class CoroutineHandleTests
}
///
- /// 验证多个连续创建的句柄Key递增
+ /// 验证多个连续创建的句柄Key递增
///
[Test]
public void Multiple_Creates_Should_Increment_Keys()
{
var handles = new List();
- for (var i = 0; i < 5; i++)
- {
- handles.Add(new CoroutineHandle(1));
- }
+ for (var i = 0; i < 5; i++) handles.Add(new CoroutineHandle(1));
- for (var i = 0; i < handles.Count - 1; i++)
- {
- Assert.That(handles[i].Equals(handles[i + 1]), Is.False);
- }
+ for (var i = 0; i < handles.Count - 1; i++) Assert.That(handles[i].Equals(handles[i + 1]), Is.False);
}
///
- /// 验证协程句柄的内部ID属性可以通过Key访问
+ /// 验证协程句柄的内部ID属性可以通过Key访问
///
[Test]
public void CoroutineHandle_Key_Should_Return_Low_4_Bits_Of_Id()
diff --git a/GFramework.Core.Tests/coroutine/CoroutineHelperTests.cs b/GFramework.Core.Tests/coroutine/CoroutineHelperTests.cs
index 965df34..0f80f79 100644
--- a/GFramework.Core.Tests/coroutine/CoroutineHelperTests.cs
+++ b/GFramework.Core.Tests/coroutine/CoroutineHelperTests.cs
@@ -6,22 +6,22 @@ using NUnit.Framework;
namespace GFramework.Core.Tests.coroutine;
///
-/// 协程辅助方法的单元测试类
-/// 测试内容包括:
-/// - WaitForSeconds方法
-/// - WaitForOneFrame方法
-/// - WaitForFrames方法
-/// - WaitUntil方法
-/// - WaitWhile方法
-/// - DelayedCall方法
-/// - RepeatCall方法
-/// - RepeatCallForever方法
+/// 协程辅助方法的单元测试类
+/// 测试内容包括:
+/// - WaitForSeconds方法
+/// - WaitForOneFrame方法
+/// - WaitForFrames方法
+/// - WaitUntil方法
+/// - WaitWhile方法
+/// - DelayedCall方法
+/// - RepeatCall方法
+/// - RepeatCallForever方法
///
[TestFixture]
public class CoroutineHelperTests
{
///
- /// 验证WaitForSeconds应该返回Delay实例
+ /// 验证WaitForSeconds应该返回Delay实例
///
[Test]
public void WaitForSeconds_Should_Return_Delay_Instance()
@@ -32,7 +32,7 @@ public class CoroutineHelperTests
}
///
- /// 验证WaitForSeconds可以处理正数秒数
+ /// 验证WaitForSeconds可以处理正数秒数
///
[Test]
public void WaitForSeconds_Should_Handle_Positive_Seconds()
@@ -44,7 +44,7 @@ public class CoroutineHelperTests
}
///
- /// 验证WaitForSeconds可以处理零秒数
+ /// 验证WaitForSeconds可以处理零秒数
///
[Test]
public void WaitForSeconds_Should_Handle_Zero_Seconds()
@@ -55,7 +55,7 @@ public class CoroutineHelperTests
}
///
- /// 验证WaitForOneFrame应该返回WaitOneFrame实例
+ /// 验证WaitForOneFrame应该返回WaitOneFrame实例
///
[Test]
public void WaitForOneFrame_Should_Return_WaitOneFrame_Instance()
@@ -66,7 +66,7 @@ public class CoroutineHelperTests
}
///
- /// 验证WaitForFrames应该返回WaitForFrames实例
+ /// 验证WaitForFrames应该返回WaitForFrames实例
///
[Test]
public void WaitForFrames_Should_Return_WaitForFrames_Instance()
@@ -77,7 +77,7 @@ public class CoroutineHelperTests
}
///
- /// 验证WaitForFrames可以处理正数帧数
+ /// 验证WaitForFrames可以处理正数帧数
///
[Test]
public void WaitForFrames_Should_Handle_Positive_Frames()
@@ -89,7 +89,7 @@ public class CoroutineHelperTests
}
///
- /// 验证WaitForFrames可以处理最小帧数1
+ /// 验证WaitForFrames可以处理最小帧数1
///
[Test]
public void WaitForFrames_Should_Handle_Minimum_Frame_Count_Of_1()
@@ -101,7 +101,7 @@ public class CoroutineHelperTests
}
///
- /// 验证WaitUntil应该返回WaitUntil实例
+ /// 验证WaitUntil应该返回WaitUntil实例
///
[Test]
public void WaitUntil_Should_Return_WaitUntil_Instance()
@@ -113,7 +113,7 @@ public class CoroutineHelperTests
}
///
- /// 验证WaitUntil应该使用提供的谓词函数
+ /// 验证WaitUntil应该使用提供的谓词函数
///
[Test]
public void WaitUntil_Should_Use_Provided_Predicate()
@@ -129,7 +129,7 @@ public class CoroutineHelperTests
}
///
- /// 验证WaitWhile应该返回WaitWhile实例
+ /// 验证WaitWhile应该返回WaitWhile实例
///
[Test]
public void WaitWhile_Should_Return_WaitWhile_Instance()
@@ -141,7 +141,7 @@ public class CoroutineHelperTests
}
///
- /// 验证WaitWhile应该在条件为假时完成
+ /// 验证WaitWhile应该在条件为假时完成
///
[Test]
public void WaitWhile_Should_Complete_When_Condition_Is_False()
@@ -157,7 +157,7 @@ public class CoroutineHelperTests
}
///
- /// 验证DelayedCall应该返回IEnumerator实例
+ /// 验证DelayedCall应该返回IEnumerator实例
///
[Test]
public void DelayedCall_Should_Return_IEnumerator()
@@ -169,7 +169,7 @@ public class CoroutineHelperTests
}
///
- /// 验证DelayedCall的action可以在延迟后执行
+ /// 验证DelayedCall的action可以在延迟后执行
///
[Test]
public void DelayedCall_Should_Execute_Action_After_Delay()
@@ -187,7 +187,7 @@ public class CoroutineHelperTests
}
///
- /// 验证DelayedCall可以处理null action
+ /// 验证DelayedCall可以处理null action
///
[Test]
public void DelayedCall_Should_Handle_Null_Action()
@@ -199,7 +199,7 @@ public class CoroutineHelperTests
}
///
- /// 验证RepeatCall应该返回IEnumerator实例
+ /// 验证RepeatCall应该返回IEnumerator实例
///
[Test]
public void RepeatCall_Should_Return_IEnumerator()
@@ -211,7 +211,7 @@ public class CoroutineHelperTests
}
///
- /// 验证RepeatCall应该执行指定次数
+ /// 验证RepeatCall应该执行指定次数
///
[Test]
public void RepeatCall_Should_Execute_Specified_Times()
@@ -219,16 +219,13 @@ public class CoroutineHelperTests
var callCount = 0;
var coroutine = CoroutineHelper.RepeatCall(0.1, 3, () => callCount++);
- while (coroutine.MoveNext())
- {
- coroutine.Current.Update(0.1);
- }
+ while (coroutine.MoveNext()) coroutine.Current.Update(0.1);
Assert.That(callCount, Is.EqualTo(3));
}
///
- /// 验证RepeatCall可以处理0次调用
+ /// 验证RepeatCall可以处理0次调用
///
[Test]
public void RepeatCall_Should_Handle_Zero_Count()
@@ -241,7 +238,7 @@ public class CoroutineHelperTests
}
///
- /// 验证RepeatCallForever应该返回IEnumerator实例
+ /// 验证RepeatCallForever应该返回IEnumerator实例
///
[Test]
public void RepeatCallForever_Should_Return_IEnumerator()
@@ -253,7 +250,7 @@ public class CoroutineHelperTests
}
///
- /// 验证RepeatCallForever应该无限执行
+ /// 验证RepeatCallForever应该无限执行
///
[Test]
public void RepeatCallForever_Should_Execute_Forever()
@@ -273,7 +270,7 @@ public class CoroutineHelperTests
}
///
- /// 验证RepeatCallForever可以处理null action
+ /// 验证RepeatCallForever可以处理null action
///
[Test]
public void RepeatCallForever_Should_Handle_Null_Action()
@@ -285,7 +282,7 @@ public class CoroutineHelperTests
}
///
- /// 验证RepeatCallForever可以处理负数间隔
+ /// 验证RepeatCallForever可以处理负数间隔
///
[Test]
public void RepeatCallForever_Should_Handle_Negative_Interval()
@@ -298,7 +295,7 @@ public class CoroutineHelperTests
}
///
- /// 验证DelayedCall可以处理负数延迟
+ /// 验证DelayedCall可以处理负数延迟
///
[Test]
public void DelayedCall_Should_Handle_Negative_Delay()
@@ -311,7 +308,7 @@ public class CoroutineHelperTests
}
///
- /// 验证RepeatCall可以处理负数间隔
+ /// 验证RepeatCall可以处理负数间隔
///
[Test]
public void RepeatCall_Should_Handle_Negative_Interval()
@@ -324,7 +321,7 @@ public class CoroutineHelperTests
}
///
- /// 验证WaitUntil应该抛出ArgumentNullException当predicate为null
+ /// 验证WaitUntil应该抛出ArgumentNullException当predicate为null
///
[Test]
public void WaitUntil_Should_Throw_ArgumentNullException_When_Predicate_Is_Null()
@@ -333,7 +330,7 @@ public class CoroutineHelperTests
}
///
- /// 验证WaitWhile应该抛出ArgumentNullException当predicate为null
+ /// 验证WaitWhile应该抛出ArgumentNullException当predicate为null
///
[Test]
public void WaitWhile_Should_Throw_ArgumentNullException_When_Predicate_Is_Null()
diff --git a/GFramework.Core.Tests/coroutine/CoroutineSchedulerTests.cs b/GFramework.Core.Tests/coroutine/CoroutineSchedulerTests.cs
index 9e8e43d..db2f9ce 100644
--- a/GFramework.Core.Tests/coroutine/CoroutineSchedulerTests.cs
+++ b/GFramework.Core.Tests/coroutine/CoroutineSchedulerTests.cs
@@ -6,46 +6,46 @@ using NUnit.Framework;
namespace GFramework.Core.Tests.coroutine;
///
-/// 协程调度器的单元测试类
-/// 测试内容包括:
-/// - 协程调度器的创建和初始化
-/// - 运行协程
-/// - 更新协程状态
-/// - 暂停和恢复协程
-/// - 终止协程
-/// - 协程等待机制
-/// - 标签管理
-/// - 清空所有协程
-/// - 异常处理
-/// - 扩展容量
-/// - 主动协程计数
-/// - 时间差值属性
+/// 协程调度器的单元测试类
+/// 测试内容包括:
+/// - 协程调度器的创建和初始化
+/// - 运行协程
+/// - 更新协程状态
+/// - 暂停和恢复协程
+/// - 终止协程
+/// - 协程等待机制
+/// - 标签管理
+/// - 清空所有协程
+/// - 异常处理
+/// - 扩展容量
+/// - 主动协程计数
+/// - 时间差值属性
///
[TestFixture]
public class CoroutineSchedulerTests
{
///
- /// 测试初始化方法,在每个测试方法执行前设置测试环境
+ /// 测试初始化方法,在每个测试方法执行前设置测试环境
///
[SetUp]
public void SetUp()
{
_timeSource = new TestTimeSource();
- _scheduler = new CoroutineScheduler(_timeSource, instanceId: 1, initialCapacity: 4);
+ _scheduler = new CoroutineScheduler(_timeSource, 1, 4);
}
///
- /// 测试用的时间源实例
+ /// 测试用的时间源实例
///
private TestTimeSource _timeSource = null!;
///
- /// 测试用的协程调度器实例
+ /// 测试用的协程调度器实例
///
private CoroutineScheduler _scheduler = null!;
///
- /// 验证协程调度器创建时应该有正确的初始状态
+ /// 验证协程调度器创建时应该有正确的初始状态
///
[Test]
public void CoroutineScheduler_Should_Initialize_With_Correct_State()
@@ -54,7 +54,7 @@ public class CoroutineSchedulerTests
}
///
- /// 验证协程调度器应该在创建时接受有效的时间源
+ /// 验证协程调度器应该在创建时接受有效的时间源
///
[Test]
public void CoroutineScheduler_Should_Accept_Valid_TimeSource()
@@ -63,7 +63,7 @@ public class CoroutineSchedulerTests
}
///
- /// 验证协程调度器应该抛出ArgumentNullException当timeSource为null
+ /// 验证协程调度器应该抛出ArgumentNullException当timeSource为null
///
[Test]
public void CoroutineScheduler_Should_Throw_ArgumentNullException_When_TimeSource_Is_Null()
@@ -72,7 +72,7 @@ public class CoroutineSchedulerTests
}
///
- /// 验证运行协程应该返回有效的句柄
+ /// 验证运行协程应该返回有效的句柄
///
[Test]
public void Run_Should_Return_Valid_Handle()
@@ -85,7 +85,7 @@ public class CoroutineSchedulerTests
}
///
- /// 验证运行null协程应该返回无效的句柄
+ /// 验证运行null协程应该返回无效的句柄
///
[Test]
public void Run_Should_Return_Invalid_Handle_For_Null_Coroutine()
@@ -97,7 +97,7 @@ public class CoroutineSchedulerTests
}
///
- /// 验证Update方法应该推进时间并更新协程状态
+ /// 验证Update方法应该推进时间并更新协程状态
///
[Test]
public void Update_Should_Advance_Time_And_Update_Coroutines()
@@ -111,7 +111,7 @@ public class CoroutineSchedulerTests
}
///
- /// 验证暂停协程应该成功
+ /// 验证暂停协程应该成功
///
[Test]
public void Pause_Should_Succeed_For_Valid_Handle()
@@ -125,7 +125,7 @@ public class CoroutineSchedulerTests
}
///
- /// 验证暂停无效的句柄应该失败
+ /// 验证暂停无效的句柄应该失败
///
[Test]
public void Pause_Should_Fail_For_Invalid_Handle()
@@ -136,7 +136,7 @@ public class CoroutineSchedulerTests
}
///
- /// 验证恢复协程应该成功
+ /// 验证恢复协程应该成功
///
[Test]
public void Resume_Should_Succeed_For_Valid_Handle()
@@ -151,7 +151,7 @@ public class CoroutineSchedulerTests
}
///
- /// 验证恢复无效的句柄应该失败
+ /// 验证恢复无效的句柄应该失败
///
[Test]
public void Resume_Should_Fail_For_Invalid_Handle()
@@ -162,7 +162,7 @@ public class CoroutineSchedulerTests
}
///
- /// 验证终止协程应该成功
+ /// 验证终止协程应该成功
///
[Test]
public void Kill_Should_Succeed_For_Valid_Handle()
@@ -177,7 +177,7 @@ public class CoroutineSchedulerTests
}
///
- /// 验证终止无效的句柄应该失败
+ /// 验证终止无效的句柄应该失败
///
[Test]
public void Kill_Should_Fail_For_Invalid_Handle()
@@ -188,7 +188,7 @@ public class CoroutineSchedulerTests
}
///
- /// 验证WaitForCoroutine方法应该正确设置等待状态
+ /// 验证WaitForCoroutine方法应该正确设置等待状态
///
[Test]
public void WaitForCoroutine_Should_Set_Waiting_State()
@@ -205,7 +205,7 @@ public class CoroutineSchedulerTests
}
///
- /// 验证WaitForCoroutine方法应该抛出异常当等待自己
+ /// 验证WaitForCoroutine方法应该抛出异常当等待自己
///
[Test]
public void WaitForCoroutine_Should_Throw_When_Waiting_For_Self()
@@ -217,7 +217,7 @@ public class CoroutineSchedulerTests
}
///
- /// 验证WaitForCoroutine方法应该处理无效的目标句柄
+ /// 验证WaitForCoroutine方法应该处理无效的目标句柄
///
[Test]
public void WaitForCoroutine_Should_Handle_Invalid_Target_Handle()
@@ -229,7 +229,7 @@ public class CoroutineSchedulerTests
}
///
- /// 验证根据标签终止协程应该正确工作
+ /// 验证根据标签终止协程应该正确工作
///
[Test]
public void KillByTag_Should_Kill_All_Coroutines_With_Tag()
@@ -249,7 +249,7 @@ public class CoroutineSchedulerTests
}
///
- /// 验证根据不存在的标签终止协程应该返回0
+ /// 验证根据不存在的标签终止协程应该返回0
///
[Test]
public void KillByTag_Should_Return_Zero_For_Nonexistent_Tag()
@@ -264,7 +264,7 @@ public class CoroutineSchedulerTests
}
///
- /// 验证清空所有协程应该正确工作
+ /// 验证清空所有协程应该正确工作
///
[Test]
public void Clear_Should_Remove_All_Coroutines()
@@ -282,7 +282,7 @@ public class CoroutineSchedulerTests
}
///
- /// 验证清空空的调度器应该返回0
+ /// 验证清空空的调度器应该返回0
///
[Test]
public void Clear_Should_Return_Zero_For_Empty_Scheduler()
@@ -293,7 +293,7 @@ public class CoroutineSchedulerTests
}
///
- /// 验证协程调度器应该正确处理协程异常
+ /// 验证协程调度器应该正确处理协程异常
///
[Test]
public void Scheduler_Should_Handle_Coroutine_Exceptions()
@@ -305,7 +305,7 @@ public class CoroutineSchedulerTests
}
///
- /// 验证协程调度器应该在协程抛出异常后减少活跃协程计数
+ /// 验证协程调度器应该在协程抛出异常后减少活跃协程计数
///
[Test]
public void Scheduler_Should_Decrement_ActiveCount_After_Exception()
@@ -321,27 +321,21 @@ public class CoroutineSchedulerTests
}
///
- /// 验证协程调度器应该扩展容量当槽位已满
+ /// 验证协程调度器应该扩展容量当槽位已满
///
[Test]
public void Scheduler_Should_Expand_Capacity_When_Slots_Full()
{
var coroutines = new List>();
- for (var i = 0; i < 10; i++)
- {
- coroutines.Add(CreateYieldingCoroutine(new Delay(1.0)));
- }
+ for (var i = 0; i < 10; i++) coroutines.Add(CreateYieldingCoroutine(new Delay(1.0)));
- foreach (var coroutine in coroutines)
- {
- _scheduler.Run(coroutine);
- }
+ foreach (var coroutine in coroutines) _scheduler.Run(coroutine);
Assert.That(_scheduler.ActiveCoroutineCount, Is.EqualTo(10));
}
///
- /// 验证协程调度器应该使用提供的时间源
+ /// 验证协程调度器应该使用提供的时间源
///
[Test]
public void Scheduler_Should_Use_Provided_TimeSource()
@@ -355,7 +349,7 @@ public class CoroutineSchedulerTests
}
///
- /// 验证协程调度器应该正确计算活跃协程计数
+ /// 验证协程调度器应该正确计算活跃协程计数
///
[Test]
public void ActiveCoroutineCount_Should_Reflect_Active_Coroutines()
@@ -377,7 +371,7 @@ public class CoroutineSchedulerTests
}
///
- /// 验证暂停的协程不应该被更新
+ /// 验证暂停的协程不应该被更新
///
[Test]
public void Paused_Coroutine_Should_Not_Be_Updated()
@@ -393,7 +387,7 @@ public class CoroutineSchedulerTests
}
///
- /// 验证恢复的协程应该继续执行
+ /// 验证恢复的协程应该继续执行
///
[Test]
public void Resumed_Coroutine_Should_Continue_Execution()
@@ -412,7 +406,7 @@ public class CoroutineSchedulerTests
}
///
- /// 创建简单的立即完成协程
+ /// 创建简单的立即完成协程
///
private IEnumerator CreateSimpleCoroutine()
{
@@ -420,7 +414,7 @@ public class CoroutineSchedulerTests
}
///
- /// 创建带等待指令的协程
+ /// 创建带等待指令的协程
///
private IEnumerator CreateYieldingCoroutine(IYieldInstruction yieldInstruction)
{
@@ -428,7 +422,7 @@ public class CoroutineSchedulerTests
}
///
- /// 创建带等待指令和回调的协程
+ /// 创建带等待指令和回调的协程
///
private IEnumerator CreateYieldingCoroutine(IYieldInstruction yieldInstruction,
Action? onComplete = null)
@@ -438,7 +432,7 @@ public class CoroutineSchedulerTests
}
///
- /// 创建立即完成并执行回调的协程
+ /// 创建立即完成并执行回调的协程
///
private IEnumerator CreateImmediateCoroutine(Action? onComplete = null)
{
@@ -447,7 +441,7 @@ public class CoroutineSchedulerTests
}
///
- /// 创建计数协程
+ /// 创建计数协程
///
private IEnumerator CreateCountingCoroutine(Action? onExecute = null)
{
@@ -458,7 +452,7 @@ public class CoroutineSchedulerTests
}
///
- /// 创建抛出异常的协程
+ /// 创建抛出异常的协程
///
private IEnumerator CreateExceptionCoroutine()
{
@@ -468,22 +462,22 @@ public class CoroutineSchedulerTests
}
///
-/// 测试用时间源类,实现ITimeSource接口
+/// 测试用时间源类,实现ITimeSource接口
///
public class TestTimeSource : ITimeSource
{
///
- /// 获取当前时间
+ /// 获取当前时间
///
public double CurrentTime { get; private set; }
///
- /// 获取时间增量
+ /// 获取时间增量
///
public double DeltaTime { get; private set; }
///
- /// 更新时间源状态
+ /// 更新时间源状态
///
public void Update()
{
diff --git a/GFramework.Core.Tests/coroutine/CoroutineStateTests.cs b/GFramework.Core.Tests/coroutine/CoroutineStateTests.cs
index b125ea8..6524682 100644
--- a/GFramework.Core.Tests/coroutine/CoroutineStateTests.cs
+++ b/GFramework.Core.Tests/coroutine/CoroutineStateTests.cs
@@ -4,16 +4,16 @@ using NUnit.Framework;
namespace GFramework.Core.Tests.coroutine;
///
-/// 协程状态枚举的单元测试类
-/// 测试内容包括:
-/// - 枚举值存在性验证
-/// - 枚举值正确性
+/// 协程状态枚举的单元测试类
+/// 测试内容包括:
+/// - 枚举值存在性验证
+/// - 枚举值正确性
///
[TestFixture]
public class CoroutineStateTests
{
///
- /// 验证协程状态枚举包含所有预期值
+ /// 验证协程状态枚举包含所有预期值
///
[Test]
public void CoroutineState_Should_Have_All_Expected_Values()
@@ -29,7 +29,7 @@ public class CoroutineStateTests
}
///
- /// 验证枚举基础值为整数类型
+ /// 验证枚举基础值为整数类型
///
[Test]
public void CoroutineState_Should_Be_Integer_Based_Enum()
diff --git a/GFramework.Core.Tests/coroutine/TaskCoroutineExtensionsTests.cs b/GFramework.Core.Tests/coroutine/TaskCoroutineExtensionsTests.cs
index 518f282..01f8ab5 100644
--- a/GFramework.Core.Tests/coroutine/TaskCoroutineExtensionsTests.cs
+++ b/GFramework.Core.Tests/coroutine/TaskCoroutineExtensionsTests.cs
@@ -7,16 +7,16 @@ using NUnit.Framework;
namespace GFramework.Core.Tests.coroutine;
///
-/// TaskCoroutineExtensions的单元测试类
-/// 测试内容包括:
-/// - AsCoroutineInstruction方法
-/// - StartTaskAsCoroutine方法
+/// TaskCoroutineExtensions的单元测试类
+/// 测试内容包括:
+/// - AsCoroutineInstruction方法
+/// - StartTaskAsCoroutine方法
///
[TestFixture]
public class TaskCoroutineExtensionsTests
{
///
- /// 验证AsCoroutineInstruction应该返回WaitForTask
+ /// 验证AsCoroutineInstruction应该返回WaitForTask
///
[Test]
public void AsCoroutineInstruction_Should_Return_WaitForTask()
@@ -28,19 +28,19 @@ public class TaskCoroutineExtensionsTests
}
///
- /// 验证AsCoroutineInstruction应该返回WaitForTask
+ /// 验证AsCoroutineInstruction应该返回WaitForTask
///
[Test]
public void AsCoroutineInstructionOfT_Should_Return_WaitForTaskOfT()
{
var task = Task.FromResult(42);
- var instruction = task.AsCoroutineInstruction();
+ var instruction = task.AsCoroutineInstruction();
Assert.That(instruction, Is.InstanceOf>());
}
///
- /// 验证AsCoroutineInstruction可以处理已完成的Task并验证其状态
+ /// 验证AsCoroutineInstruction可以处理已完成的Task并验证其状态
///
[Test]
public void AsCoroutineInstruction_Should_Handle_Completed_Task()
@@ -50,21 +50,21 @@ public class TaskCoroutineExtensionsTests
// 验证指令类型
Assert.That(instruction, Is.InstanceOf());
-
+
// 验证已完成的任务是否立即可用
Assert.That(task.IsCompleted, Is.True);
Assert.That(task.Status, Is.EqualTo(TaskStatus.RanToCompletion));
}
-
+
///
- /// 验证AsCoroutineInstruction应该能够访问Task结果
+ /// 验证AsCoroutineInstruction应该能够访问Task结果
///
[Test]
public void AsCoroutineInstructionOfT_Should_Access_Task_Result()
{
var task = Task.FromResult(42);
- var instruction = task.AsCoroutineInstruction();
+ var instruction = task.AsCoroutineInstruction();
task.Wait();
@@ -72,7 +72,7 @@ public class TaskCoroutineExtensionsTests
}
///
- /// 验证AsCoroutineInstruction应该处理null Task(抛出异常)
+ /// 验证AsCoroutineInstruction应该处理null Task(抛出异常)
///
[Test]
public void AsCoroutineInstruction_Should_Handle_Null_Task()
@@ -83,18 +83,18 @@ public class TaskCoroutineExtensionsTests
}
///
- /// 验证AsCoroutineInstruction应该处理null Task(抛出异常)
+ /// 验证AsCoroutineInstruction应该处理null Task(抛出异常)
///
[Test]
public void AsCoroutineInstructionOfT_Should_Handle_Null_Task()
{
Task task = null!;
- Assert.Throws(() => task.AsCoroutineInstruction());
+ Assert.Throws(() => task.AsCoroutineInstruction());
}
///
- /// 验证AsCoroutineInstruction应该处理失败的Task
+ /// 验证AsCoroutineInstruction应该处理失败的Task
///
[Test]
public void AsCoroutineInstruction_Should_Handle_Faulted_Task()
@@ -106,25 +106,25 @@ public class TaskCoroutineExtensionsTests
}
///
- /// 验证AsCoroutineInstruction应该处理失败的Task
+ /// 验证AsCoroutineInstruction应该处理失败的Task
///
[Test]
public void AsCoroutineInstructionOfT_Should_Handle_Faulted_Task()
{
var task = Task.FromException(new InvalidOperationException("Test exception"));
- var instruction = task.AsCoroutineInstruction();
+ var instruction = task.AsCoroutineInstruction();
Assert.That(instruction, Is.InstanceOf>());
}
///
- /// 验证StartTaskAsCoroutine应该返回有效的协程句柄
+ /// 验证StartTaskAsCoroutine应该返回有效的协程句柄
///
[Test]
public void StartTaskAsCoroutine_Should_Return_Valid_Handle()
{
var timeSource = new TestTimeSource();
- var scheduler = new CoroutineScheduler(timeSource, instanceId: 1);
+ var scheduler = new CoroutineScheduler(timeSource);
var task = Task.CompletedTask;
var handle = scheduler.StartTaskAsCoroutine(task);
@@ -133,13 +133,13 @@ public class TaskCoroutineExtensionsTests
}
///
- /// 验证StartTaskAsCoroutine应该返回有效的协程句柄
+ /// 验证StartTaskAsCoroutine应该返回有效的协程句柄
///
[Test]
public void StartTaskAsCoroutineOfT_Should_Return_Valid_Handle()
{
var timeSource = new TestTimeSource();
- var scheduler = new CoroutineScheduler(timeSource, instanceId: 1);
+ var scheduler = new CoroutineScheduler(timeSource);
var task = Task.FromResult(42);
var handle = scheduler.StartTaskAsCoroutine(task);
@@ -148,13 +148,13 @@ public class TaskCoroutineExtensionsTests
}
///
- /// 验证StartTaskAsCoroutine应该等待Task完成
+ /// 验证StartTaskAsCoroutine应该等待Task完成
///
[Test]
public void StartTaskAsCoroutine_Should_Wait_For_Task_Completion()
{
var timeSource = new TestTimeSource();
- var scheduler = new CoroutineScheduler(timeSource, instanceId: 1);
+ var scheduler = new CoroutineScheduler(timeSource);
var completed = false;
var tcs = new TaskCompletionSource