// Copyright (c) 2025-2026 GeWuYou
// SPDX-License-Identifier: Apache-2.0
using System;
using System.Threading;
using System.Threading.Tasks;
using GFramework.Cqrs.Abstractions.Cqrs;
namespace GFramework.Cqrs.Tests.Cqrs;
///
/// 用于验证“生成注册器 + reflection fallback”组合路径的私有嵌套处理器容器。
///
internal sealed class ReflectionFallbackNotificationContainer
{
///
/// 获取可被直接引用、适合通过 元数据补扫的处理器类型。
///
///
/// 可被生成注册器直接引用的 fallback 处理器类型,用于验证 runtime 会优先消费 元数据。
///
public static Type DirectFallbackHandlerType => typeof(DirectFallbackGeneratedRegistryNotificationHandler);
///
/// 获取仅能通过反射补扫接入的私有嵌套处理器类型。
///
public static Type ReflectionOnlyHandlerType => typeof(ReflectionOnlyGeneratedRegistryNotificationHandler);
private sealed class DirectFallbackGeneratedRegistryNotificationHandler
: INotificationHandler
{
///
/// 处理测试通知。
///
/// 通知实例。
/// 取消令牌。
/// 已完成任务。
public ValueTask Handle(GeneratedRegistryNotification notification, CancellationToken cancellationToken)
{
return ValueTask.CompletedTask;
}
}
private sealed class ReflectionOnlyGeneratedRegistryNotificationHandler
: INotificationHandler
{
///
/// 处理测试通知。
///
/// 通知实例。
/// 取消令牌。
/// 已完成任务。
public ValueTask Handle(GeneratedRegistryNotification notification, CancellationToken cancellationToken)
{
return ValueTask.CompletedTask;
}
}
}