mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-05-07 00:39:00 +08:00
- 在 EnumExtensionsGeneratorSnapshotTests.cs 中补充 snapshotFileNameSelector 的 null 分支覆盖,新增默认快照文件名选择器用例及对应快照资产 - 强化 GeneratorSnapshotTest.cs 的快照路径校验,拒绝空白文件名、绝对路径和目录遍历攻击;将辅助器改为通过 Roslyn GeneratorDriver 读取真实生成结果并验证编译,消除仅依赖 TestState.GeneratedSources 导致的空跑风险 - 新增 GeneratorSnapshotTestSecurityTests.cs 安全回归测试,覆盖绝对路径拒绝和目录逃逸防护两个分支 - 将 Priority、Logger、ContextAware 三组生成器测试统一指向仓库内快照目录,并补齐缺失的快照资产以支持现在强制执行的生成验证
55 lines
1.8 KiB
C#
55 lines
1.8 KiB
C#
// <auto-generated/>
|
||
#nullable enable
|
||
|
||
namespace TestApp;
|
||
|
||
partial class MyRule : global::GFramework.Core.Abstractions.Rule.IContextAware
|
||
{
|
||
private global::GFramework.Core.Abstractions.Architectures.IArchitectureContext? _context;
|
||
private static global::GFramework.Core.Abstractions.Architectures.IArchitectureContextProvider? _contextProvider;
|
||
|
||
/// <summary>
|
||
/// 自动获取的架构上下文(懒加载,默认使用 GameContextProvider)
|
||
/// </summary>
|
||
protected global::GFramework.Core.Abstractions.Architectures.IArchitectureContext Context
|
||
{
|
||
get
|
||
{
|
||
if (_context == null)
|
||
{
|
||
_contextProvider ??= new global::GFramework.Core.Architectures.GameContextProvider();
|
||
_context = _contextProvider.GetContext();
|
||
}
|
||
|
||
return _context;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 配置上下文提供者(用于测试或多架构场景)
|
||
/// </summary>
|
||
/// <param name="provider">上下文提供者实例</param>
|
||
public static void SetContextProvider(global::GFramework.Core.Abstractions.Architectures.IArchitectureContextProvider provider)
|
||
{
|
||
_contextProvider = provider;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 重置上下文提供者为默认值(用于测试清理)
|
||
/// </summary>
|
||
public static void ResetContextProvider()
|
||
{
|
||
_contextProvider = null;
|
||
}
|
||
|
||
void global::GFramework.Core.Abstractions.Rule.IContextAware.SetContext(global::GFramework.Core.Abstractions.Architectures.IArchitectureContext context)
|
||
{
|
||
_context = context;
|
||
}
|
||
|
||
global::GFramework.Core.Abstractions.Architectures.IArchitectureContext global::GFramework.Core.Abstractions.Rule.IContextAware.GetContext()
|
||
{
|
||
return Context;
|
||
}
|
||
|
||
} |