GFramework/GFramework.SourceGenerators.Tests/enums/EnumExtensionsGeneratorSnapshotTests.cs
GeWuYou 5d11666fd8 test(core): 添加核心组件的单元测试
- 为 ContextAware 功能添加全面的单元测试覆盖
- 增加对枚举扩展生成器的快照测试验证
- 实现环境管理器的完整测试用例集
- 添加事件总线功能的核心测试验证
- 为游戏上下文管理添加架构测试
- 扩展注销列表扩展方法的测试覆盖
- 增加注销机制的全面单元测试验证
- [skip ci]
2026-01-15 14:36:30 +08:00

149 lines
5.1 KiB
C#

using GFramework.SourceGenerators.enums;
using GFramework.SourceGenerators.Tests.core;
using NUnit.Framework;
namespace GFramework.SourceGenerators.Tests.enums;
[TestFixture]
public class EnumExtensionsGeneratorSnapshotTests
{
[Test]
public async Task Snapshot_BasicEnum_IsMethods()
{
const string source = """
using GFramework.SourceGenerators.Abstractions.enums;
namespace TestApp
{
[GenerateEnumExtensions]
public enum Status
{
Active,
Inactive,
Pending
}
}
""";
await GeneratorSnapshotTest<EnumExtensionsGenerator>.RunAsync(
source,
Path.Combine(
TestContext.CurrentContext.TestDirectory,
"enums",
"snapshots",
"EnumExtensionsGenerator",
"BasicEnum_IsMethods"));
}
[Test]
public async Task Snapshot_BasicEnum_IsInMethod()
{
const string source = """
using GFramework.SourceGenerators.Abstractions.enums;
namespace TestApp
{
[GenerateEnumExtensions]
public enum Status
{
Active,
Inactive
}
}
""";
await GeneratorSnapshotTest<EnumExtensionsGenerator>.RunAsync(
source,
Path.Combine(
TestContext.CurrentContext.TestDirectory,
"enums",
"snapshots",
"EnumExtensionsGenerator",
"BasicEnum_IsInMethod"));
}
[Test]
public async Task Snapshot_EnumWithFlagValues()
{
const string source = """
using GFramework.SourceGenerators.Abstractions.enums;
using System;
namespace TestApp
{
[GenerateEnumExtensions]
[Flags]
public enum Permissions
{
None = 0,
Read = 1,
Write = 2,
Execute = 4
}
}
""";
await GeneratorSnapshotTest<EnumExtensionsGenerator>.RunAsync(
source,
Path.Combine(
TestContext.CurrentContext.TestDirectory,
"enums",
"snapshots",
"EnumExtensionsGenerator",
"EnumWithFlagValues"));
}
[Test]
public async Task Snapshot_DisableIsMethods()
{
const string source = """
using GFramework.SourceGenerators.Abstractions.enums;
namespace TestApp
{
[GenerateEnumExtensions(GenerateIsMethods = false)]
public enum Status
{
Active,
Inactive
}
}
""";
await GeneratorSnapshotTest<EnumExtensionsGenerator>.RunAsync(
source,
Path.Combine(
TestContext.CurrentContext.TestDirectory,
"enums",
"snapshots",
"EnumExtensionsGenerator",
"DisableIsMethods"));
}
[Test]
public async Task Snapshot_DisableIsInMethod()
{
const string source = """
using GFramework.SourceGenerators.Abstractions.enums;
namespace TestApp
{
[GenerateEnumExtensions(GenerateIsInMethod = false)]
public enum Status
{
Active,
Inactive
}
}
""";
await GeneratorSnapshotTest<EnumExtensionsGenerator>.RunAsync(
source,
Path.Combine(
TestContext.CurrentContext.TestDirectory,
"enums",
"snapshots",
"EnumExtensionsGenerator",
"DisableIsInMethod"));
}
}