GeWuYou dda2d8f864 test(core): 添加核心组件单元测试并优化目标框架配置
- 在AsyncTestModel和TestModel中添加override关键字修复方法重写
- 调整GFramework.Core.Tests和GFramework.SourceGenerators.Tests的目标框架顺序为net10.0;net8.0
- 优化SyncArchitectureTests中的注释格式,统一添加前导空格
- 移除TestQuery相关代码文件
- 新增BindablePropertyTests测试绑定属性功能
- 新增CommandBusTests测试命令总线功能
- 新增EasyEventsTests和EventTests测试事件系统功能
- 新增IocContainerTests测试依赖注入容器功能
- 新增ObjectExtensionsTests测试对象扩展方法功能
- 新增ObjectPoolTests测试对象池功能
- 新增OrEventTests测试或事件功能
- 新增QueryBusTests测试查询总线功能
- [skip ci]
2026-01-15 13:53:08 +08:00

74 lines
1.6 KiB
C#

using GFramework.Core.Abstractions.query;
using GFramework.Core.query;
using NUnit.Framework;
namespace GFramework.Core.Tests.query;
[TestFixture]
public class QueryBusTests
{
[SetUp]
public void SetUp()
{
_queryBus = new QueryBus();
}
private QueryBus _queryBus = null!;
[Test]
public void Send_Should_Return_Query_Result()
{
var input = new TestQueryInput { Value = 10 };
var query = new TestQuery(input);
var result = _queryBus.Send(query);
Assert.That(result, Is.EqualTo(20));
}
[Test]
public void Send_WithNullQuery_Should_ThrowArgumentNullException()
{
Assert.Throws<ArgumentNullException>(() => _queryBus.Send<int>(null!));
}
[Test]
public void Send_WithStringResult_Should_Return_String()
{
var input = new TestQueryInput { Value = 5 };
var query = new TestStringQuery(input);
var result = _queryBus.Send(query);
Assert.That(result, Is.EqualTo("Result: 10"));
}
}
public sealed class TestQueryInput : IQueryInput
{
public int Value { get; init; }
}
public sealed class TestQuery : AbstractQuery<TestQueryInput, int>
{
public TestQuery(TestQueryInput input) : base(input)
{
}
protected override int OnDo(TestQueryInput input)
{
return input.Value * 2;
}
}
public sealed class TestStringQuery : AbstractQuery<TestQueryInput, string>
{
public TestStringQuery(TestQueryInput input) : base(input)
{
}
protected override string OnDo(TestQueryInput input)
{
return $"Result: {input.Value * 2}";
}
}