// Copyright (c) 2025-2026 GeWuYou
// SPDX-License-Identifier: Apache-2.0
using GFramework.Core.Architectures;
namespace GFramework.Core.Tests.Architectures;
///
/// 为 在架构上下文中暴露 的测试替身。
///
public class TestArchitectureContextWithRegistry : TestArchitectureContext
{
private readonly TestRegistry _registry;
///
/// 使用给定测试注册表创建上下文测试替身。
///
/// 需要通过 返回的测试注册表。
public TestArchitectureContextWithRegistry(TestRegistry registry)
{
_registry = registry;
}
///
/// 在请求 时返回测试注册表,其余类型回退到基类实现。
///
/// 请求的工具类型。
/// 匹配时返回测试注册表,否则返回基类结果。
public override TUtility GetUtility()
{
if (typeof(TUtility) == typeof(TestRegistry))
{
return (TUtility)(object)_registry;
}
return base.GetUtility();
}
}