GeWuYou af76e0ab0b refactor(ecs): 移除Arch ECS模块及相关组件和系统
- 删除Position组件结构体定义
- 删除Velocity组件结构体定义
- 删除MovementSystem移动系统实现
- 移除ArchEcsModule ECS模块管理器
- 删除ArchSystemAdapter适配器基类
- 从ServiceModuleManager中移除ECS模块注册逻辑
- 从ArchitectureProperties中移除EnableEcs配置选项
- 删除ECS相关的单元测试文件
- 从项目文件中移除Arch和Arch.System包引用
- 从解决方案文件中移除ECS相关项目引用
- 更新项目配置文件中的目标框架和测试项目属性
2026-03-08 19:45:36 +08:00

75 lines
2.2 KiB
C#

using System.Linq;
using Arch.Core;
using GFramework.Core.Abstractions.properties;
using GFramework.Core.architecture;
using GFramework.Core.ioc;
using GFramework.Ecs.Arch.Abstractions;
namespace GFramework.Ecs.Arch.Tests.integration;
/// <summary>
/// 自动注册集成测试
/// </summary>
[TestFixture]
public class AutoRegistrationTests
{
[SetUp]
public void Setup()
{
_container = new MicrosoftDiContainer();
_context = new ArchitectureContext(_container);
}
[TearDown]
public void TearDown()
{
_container?.Clear();
_context = null;
}
private MicrosoftDiContainer? _container;
private ArchitectureContext? _context;
/// <summary>
/// 测试 Arch ECS 模块是否自动注册
/// </summary>
[Test]
public void ArchEcsModule_Should_Be_Auto_Registered()
{
// Arrange - 手动触发模块初始化器(模拟自动注册)
ArchModuleInitializer.Initialize();
var services = new ArchitectureServices();
var properties = new ArchitectureProperties();
// Act
services.ModuleManager.RegisterBuiltInModules(services.Container, properties);
var modules = services.ModuleManager.GetModules();
// Assert
var archModule = modules.FirstOrDefault(m => m.ModuleName == nameof(ArchEcsModule));
Assert.That(archModule, Is.Not.Null, "ArchEcsModule should be auto-registered");
Assert.That(archModule, Is.InstanceOf<IArchEcsModule>());
}
/// <summary>
/// 测试 World 是否正确注册到容器
/// </summary>
[Test]
public void World_Should_Be_Registered_In_Container()
{
// Arrange - 手动触发模块初始化器
ArchModuleInitializer.Initialize();
var services = new ArchitectureServices();
var properties = new ArchitectureProperties();
// Act
services.ModuleManager.RegisterBuiltInModules(services.Container, properties);
services.ModuleManager.InitializeAllAsync(false).Wait();
// Assert
var world = services.Container.Get<World>();
Assert.That(world, Is.Not.Null, "World should be registered in container");
}
}