test(cqrs): 收口 ArchitectureContext 综合测试命名

- 重命名综合测试类、命名空间与文件路径,使其与 CQRS 和 ArchitectureContext 语义一致

- 更新中文注释与局部变量命名,移除残留的 Mediator 表述且不改变测试行为

- 收窄文件内测试辅助类型可见性,避免额外暴露旧语义类型并保持项目编译通过
This commit is contained in:
gewuyou 2026-04-30 11:26:18 +08:00
parent f44629deb3
commit b015a91e57

View File

@ -11,10 +11,13 @@ using GFramework.Core.Query;
using GFramework.Cqrs.Abstractions.Cqrs;
using ICommand = GFramework.Core.Abstractions.Command.ICommand;
namespace GFramework.Cqrs.Tests.Mediator;
namespace GFramework.Cqrs.Tests.Cqrs;
/// <summary>
/// 覆盖 <see cref="ArchitectureContext" /> 在 CQRS 请求、通知、流式处理和传统总线共存场景下的综合行为。
/// </summary>
[TestFixture]
public class MediatorComprehensiveTests
public sealed class ArchitectureContextComprehensiveTests
{
/// <summary>
/// 测试初始化方法,在每个测试方法执行前运行。
@ -29,9 +32,9 @@ public class MediatorComprehensiveTests
var loggerField = typeof(MicrosoftDiContainer).GetField("_logger",
BindingFlags.NonPublic | BindingFlags.Instance);
loggerField?.SetValue(_container,
LoggerFactoryResolver.Provider.CreateLogger(nameof(MediatorComprehensiveTests)));
LoggerFactoryResolver.Provider.CreateLogger(nameof(ArchitectureContextComprehensiveTests)));
// 注册基础服务Legacy CQRS
// 注册传统 CQRS 基础服务,验证其与 ArchitectureContext 请求管线可以共存。
_eventBus = new EventBus();
_commandBus = new CommandExecutor();
_queryBus = new QueryExecutor();
@ -46,7 +49,7 @@ public class MediatorComprehensiveTests
CqrsTestRuntime.RegisterHandlers(
_container,
typeof(MediatorComprehensiveTests).Assembly,
typeof(ArchitectureContextComprehensiveTests).Assembly,
typeof(ArchitectureContext).Assembly);
_container.Freeze();
@ -416,22 +419,22 @@ public class MediatorComprehensiveTests
Assert.That(legacyCommand.Executed, Is.True);
// 使用自有 CQRS 方式
var mediatorCommand = new TestCommandWithResult { ResultValue = 999 };
var result = await _context.SendAsync(mediatorCommand).ConfigureAwait(false);
var cqrsCommand = new TestCommandWithResult { ResultValue = 999 };
var result = await _context.SendAsync(cqrsCommand).ConfigureAwait(false);
Assert.That(result, Is.EqualTo(999));
// 验证两者可以同时工作
Assert.That(legacyCommand.Executed, Is.True);
Assert.That(result, Is.EqualTo(999));
}
#region Advanced Test Classes for CQRS Features
#region ArchitectureContext CQRS Test Helpers
public sealed record TestLongRunningRequest : IRequest<string>
private sealed record TestLongRunningRequest : IRequest<string>
{
public int DelayMs { get; init; }
}
public sealed class TestLongRunningRequestHandler : IRequestHandler<TestLongRunningRequest, string>
private sealed class TestLongRunningRequestHandler : IRequestHandler<TestLongRunningRequest, string>
{
public async ValueTask<string> Handle(TestLongRunningRequest request, CancellationToken cancellationToken)
{
@ -441,12 +444,12 @@ public sealed class TestLongRunningRequestHandler : IRequestHandler<TestLongRunn
}
}
public sealed record TestLongStreamRequest : IStreamRequest<int>
private sealed record TestLongStreamRequest : IStreamRequest<int>
{
public int ItemCount { get; init; }
}
public sealed class TestLongStreamRequestHandler : IStreamRequestHandler<TestLongStreamRequest, int>
private sealed class TestLongStreamRequestHandler : IStreamRequestHandler<TestLongStreamRequest, int>
{
public async IAsyncEnumerable<int> Handle(
TestLongStreamRequest request,
@ -461,9 +464,9 @@ public sealed class TestLongStreamRequestHandler : IStreamRequestHandler<TestLon
}
}
public sealed record TestFaultyRequest : IRequest<string>;
private sealed record TestFaultyRequest : IRequest<string>;
public sealed class TestFaultyRequestHandler : IRequestHandler<TestFaultyRequest, string>
private sealed class TestFaultyRequestHandler : IRequestHandler<TestFaultyRequest, string>
{
public ValueTask<string> Handle(TestFaultyRequest request, CancellationToken cancellationToken)
{
@ -471,18 +474,18 @@ public sealed class TestFaultyRequestHandler : IRequestHandler<TestFaultyRequest
}
}
public class SharedData
private sealed class SharedData
{
public int Value { get; set; }
}
public sealed record TestModifyDataCommand : IRequest<Unit>
private sealed record TestModifyDataCommand : IRequest<Unit>
{
public SharedData Data { get; init; } = null!;
public int Value { get; init; }
}
public sealed class TestModifyDataCommandHandler : IRequestHandler<TestModifyDataCommand, Unit>
private sealed class TestModifyDataCommandHandler : IRequestHandler<TestModifyDataCommand, Unit>
{
public ValueTask<Unit> Handle(TestModifyDataCommand request, CancellationToken cancellationToken)
{
@ -491,13 +494,13 @@ public sealed class TestModifyDataCommandHandler : IRequestHandler<TestModifyDat
}
}
public sealed record TestCachingQuery : IRequest<string>
private sealed record TestCachingQuery : IRequest<string>
{
public string Key { get; init; } = string.Empty;
public IDictionary<string, string> Cache { get; init; } = new Dictionary<string, string>(StringComparer.Ordinal);
}
public sealed class TestCachingQueryHandler : IRequestHandler<TestCachingQuery, string>
private sealed class TestCachingQueryHandler : IRequestHandler<TestCachingQuery, string>
{
public ValueTask<string> Handle(TestCachingQuery request, CancellationToken cancellationToken)
{
@ -512,13 +515,13 @@ public sealed class TestCachingQueryHandler : IRequestHandler<TestCachingQuery,
}
}
public sealed record TestOrderedNotification : INotification
private sealed record TestOrderedNotification : INotification
{
public int Order { get; init; }
public string Message { get; init; } = string.Empty;
}
public sealed class TestOrderedNotificationHandler : INotificationHandler<TestOrderedNotification>
private sealed class TestOrderedNotificationHandler : INotificationHandler<TestOrderedNotification>
{
public static ICollection<string> ReceivedMessages { get; set; } = new List<string>();
@ -529,8 +532,8 @@ public sealed class TestOrderedNotificationHandler : INotificationHandler<TestOr
}
}
// 额外的通知处理器来测试多处理器场景
public sealed class TestNotificationHandler2 : INotificationHandler<TestNotification>
// 额外的通知处理器用于验证多处理器通知分发场景。
private sealed class TestNotificationHandler2 : INotificationHandler<TestNotification>
{
public static string? LastReceivedMessage { get; set; }
@ -541,7 +544,7 @@ public sealed class TestNotificationHandler2 : INotificationHandler<TestNotifica
}
}
public sealed class TestNotificationHandler3 : INotificationHandler<TestNotification>
private sealed class TestNotificationHandler3 : INotificationHandler<TestNotification>
{
public static string? LastReceivedMessage { get; set; }
@ -552,13 +555,13 @@ public sealed class TestNotificationHandler3 : INotificationHandler<TestNotifica
}
}
public sealed record TestFilterStreamRequest : IStreamRequest<int>
private sealed record TestFilterStreamRequest : IStreamRequest<int>
{
public int[] Values { get; init; } = [];
public bool FilterEven { get; init; }
}
public sealed class TestFilterStreamRequestHandler : IStreamRequestHandler<TestFilterStreamRequest, int>
private sealed class TestFilterStreamRequestHandler : IStreamRequestHandler<TestFilterStreamRequest, int>
{
public async IAsyncEnumerable<int> Handle(
TestFilterStreamRequest request,
@ -577,12 +580,12 @@ public sealed class TestFilterStreamRequestHandler : IStreamRequestHandler<TestF
}
}
public sealed record TestValidatedCommand : IRequest<Unit>
private sealed record TestValidatedCommand : IRequest<Unit>
{
public string Name { get; init; } = string.Empty;
}
public sealed class TestValidatedCommandHandler : IRequestHandler<TestValidatedCommand, Unit>
private sealed class TestValidatedCommandHandler : IRequestHandler<TestValidatedCommand, Unit>
{
public ValueTask<Unit> Handle(TestValidatedCommand request, CancellationToken cancellationToken)
{
@ -595,8 +598,8 @@ public sealed class TestValidatedCommandHandler : IRequestHandler<TestValidatedC
}
}
// 传统命令用于共存测试
public class TestLegacyCommand : ICommand
// 传统命令用于验证旧命令总线与 ArchitectureContext 的 CQRS API 可以同时工作。
private sealed class TestLegacyCommand : ICommand
{
public bool Executed { get; private set; }
@ -607,7 +610,7 @@ public class TestLegacyCommand : ICommand
public void SetContext(IArchitectureContext context)
{
// 不需要实现
// 该测试只验证传统命令是否被执行,不依赖上下文回填。
}
public IArchitectureContext GetContext()
@ -618,42 +621,40 @@ public class TestLegacyCommand : ICommand
#endregion
#region Test Classes - CQRS Runtime
#region ArchitectureContext CQRS Runtime Types
// ✅ 这些类使用自有 CQRS IRequest
public sealed record TestRequest : IRequest<int>
private sealed record TestRequest : IRequest<int>
{
public int Value { get; init; }
}
public sealed record TestCommand : IRequest<Unit>
private sealed record TestCommand : IRequest<Unit>
{
public bool ShouldExecute { get; init; }
public bool Executed { get; set; }
}
public sealed record TestCommandWithResult : IRequest<int>
private sealed record TestCommandWithResult : IRequest<int>
{
public int ResultValue { get; init; }
}
public sealed record TestQuery : IRequest<string>
private sealed record TestQuery : IRequest<string>
{
public string QueryResult { get; init; } = string.Empty;
}
public sealed record TestNotification : INotification
private sealed record TestNotification : INotification
{
public string Message { get; init; } = string.Empty;
}
public sealed record TestStreamRequest : IStreamRequest<int>
private sealed record TestStreamRequest : IStreamRequest<int>
{
public int[] Values { get; init; } = [];
}
// ✅ 这些 Handler 使用自有 CQRS IRequestHandler
public sealed class TestRequestHandler : IRequestHandler<TestRequest, int>
private sealed class TestRequestHandler : IRequestHandler<TestRequest, int>
{
public ValueTask<int> Handle(TestRequest request, CancellationToken cancellationToken)
{
@ -661,7 +662,7 @@ public sealed class TestRequestHandler : IRequestHandler<TestRequest, int>
}
}
public sealed class TestCommandHandler : IRequestHandler<TestCommand, Unit>
private sealed class TestCommandHandler : IRequestHandler<TestCommand, Unit>
{
public ValueTask<Unit> Handle(TestCommand request, CancellationToken cancellationToken)
{
@ -674,7 +675,7 @@ public sealed class TestCommandHandler : IRequestHandler<TestCommand, Unit>
}
}
public sealed class TestCommandWithResultHandler : IRequestHandler<TestCommandWithResult, int>
private sealed class TestCommandWithResultHandler : IRequestHandler<TestCommandWithResult, int>
{
public ValueTask<int> Handle(TestCommandWithResult request, CancellationToken cancellationToken)
{
@ -682,7 +683,7 @@ public sealed class TestCommandWithResultHandler : IRequestHandler<TestCommandWi
}
}
public sealed class TestQueryHandler : IRequestHandler<TestQuery, string>
private sealed class TestQueryHandler : IRequestHandler<TestQuery, string>
{
public ValueTask<string> Handle(TestQuery request, CancellationToken cancellationToken)
{
@ -690,7 +691,7 @@ public sealed class TestQueryHandler : IRequestHandler<TestQuery, string>
}
}
public sealed class TestNotificationHandler : INotificationHandler<TestNotification>
private sealed class TestNotificationHandler : INotificationHandler<TestNotification>
{
public static string? LastReceivedMessage { get; set; }
@ -701,7 +702,7 @@ public sealed class TestNotificationHandler : INotificationHandler<TestNotificat
}
}
public sealed class TestStreamRequestHandler : IStreamRequestHandler<TestStreamRequest, int>
private sealed class TestStreamRequestHandler : IStreamRequestHandler<TestStreamRequest, int>
{
public async IAsyncEnumerable<int> Handle(
TestStreamRequest request,