// Copyright (c) 2025-2026 GeWuYou
// SPDX-License-Identifier: Apache-2.0
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using GFramework.Core.Abstractions.Ioc;
using GFramework.Core.Abstractions.Logging;
using GFramework.Cqrs.Abstractions.Cqrs;
using GFramework.Cqrs.Cqrs;
using GFramework.Cqrs.Tests.Logging;
namespace GFramework.Cqrs.Tests.Cqrs;
///
/// 验证默认 dispatcher 在上下文注入前置条件不满足时的失败语义。
///
[TestFixture]
internal sealed class CqrsDispatcherContextValidationTests
{
///
/// 验证当 request handler 需要上下文注入、但当前 CQRS 上下文不实现 时,
/// dispatcher 会在调用前显式失败。
///
[Test]
public void SendAsync_Should_Throw_When_Context_Does_Not_Implement_IArchitectureContext()
{
var runtime = CreateRuntime(
container =>
{
container
.Setup(currentContainer => currentContainer.Get(typeof(IRequestHandler)))
.Returns(new ContextAwareRequestHandler());
container
.Setup(currentContainer => currentContainer.GetAll(typeof(IPipelineBehavior)))
.Returns(Array.Empty