1
0
This repository has been archived on 2025-10-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
MapperSourceGenSample/tests/MapperSourceGen.SourceGenerator.Tests/Fixture.cs
2025-07-21 13:43:39 -04:00

40 lines
1.4 KiB
C#

namespace MapperSourceGen.SourceGenerator.Tests;
using System.Reflection;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
internal static class Fixture
{
private static readonly Type[] RequiredAssemblies =
[
typeof(Binder),
typeof(MapperAttribute)
];
private static IEnumerable<MetadataReference> AssemblyReferencesForCodeGen =>
AppDomain.CurrentDomain
.GetAssemblies()
.Concat(RequiredAssemblies.Select(s => s.Assembly))
.Distinct()
.Where(w => !w.IsDynamic)
.Select(s => MetadataReference.CreateFromFile(s.Location));
public static Task VerifyGenerateSourcesAsync(string source, params IIncrementalGenerator[] generators)
{
var syntaxTree = CSharpSyntaxTree.ParseText(source, CSharpParseOptions.Default);
var compilation = CSharpCompilation.Create(
"compilation",
[syntaxTree],
AssemblyReferencesForCodeGen,
new CSharpCompilationOptions(OutputKind.ConsoleApplication));
var driver = CSharpGeneratorDriver.Create(generators);
var runner = driver.RunGenerators(compilation);
var verify = Verify(runner);
return verify;
}
}