Skip to content

Commit 8ea0226

Browse files
committed
Updated to xunit v3
1 parent 55aa6fd commit 8ea0226

File tree

11 files changed

+48
-42
lines changed

11 files changed

+48
-42
lines changed

src/AutoCtor.Shared/AutoCtor.Shared.projitems

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
<Compile Include="$(MSBuildThisFileDirectory)Models\AttributeNames.cs" />
2727
<Compile Include="$(MSBuildThisFileDirectory)Models\IHaveDiagnostics.cs" />
2828
<Compile Include="$(MSBuildThisFileDirectory)Models\MemberModel.cs" />
29+
<Compile Include="$(MSBuildThisFileDirectory)Models\ModelUtilities.cs" />
2930
<Compile Include="$(MSBuildThisFileDirectory)Models\ParameterModel.cs" />
3031
<Compile Include="$(MSBuildThisFileDirectory)Models\ParameterList.cs" />
3132
<Compile Include="$(MSBuildThisFileDirectory)Models\PostCtorModel.cs" />
@@ -35,4 +36,4 @@
3536
<AdditionalFiles Include="$(MSBuildThisFileDirectory)AnalyzerReleases.Shipped.md" />
3637
<AdditionalFiles Include="$(MSBuildThisFileDirectory)AnalyzerReleases.Unshipped.md" />
3738
</ItemGroup>
38-
</Project>
39+
</Project>

src/AutoCtor.Shared/Helpers/GeneratorUtilities.cs

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -73,17 +73,4 @@ public static bool IsTypeDeclaration(SyntaxNode node, CancellationToken cancella
7373

7474
public static bool IsMethodDeclaration(SyntaxNode node, CancellationToken cancellationToken)
7575
=> node is MethodDeclarationSyntax { AttributeLists.Count: > 0 };
76-
77-
public static string? GetServiceKey(ISymbol symbol)
78-
{
79-
var keyedService = symbol.GetAttributes()
80-
.Where(a => a.AttributeClass?.ToDisplayString() == AttributeNames.AutoKeyedService
81-
|| a.AttributeClass?.ToDisplayString() == "Microsoft.Extensions.DependencyInjection.FromKeyedServicesAttribute")
82-
.FirstOrDefault();
83-
84-
if (keyedService != null)
85-
return keyedService.ConstructorArguments[0].ToCSharpString();
86-
87-
return null;
88-
}
8976
}

src/AutoCtor.Shared/Models/MemberModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
using Microsoft.CodeAnalysis;
2-
using static GeneratorUtilities;
2+
using static ModelUtilities;
33

44
internal readonly record struct MemberModel(
55
EquatableTypeSymbol Type,
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
using Microsoft.CodeAnalysis;
2+
using Microsoft.CodeAnalysis.CSharp;
3+
4+
internal static class ModelUtilities
5+
{
6+
public static string? GetServiceKey(ISymbol symbol)
7+
{
8+
var keyedService = symbol.GetAttributes()
9+
.Where(a => a.AttributeClass?.ToDisplayString() == AttributeNames.AutoKeyedService
10+
|| a.AttributeClass?.ToDisplayString() == "Microsoft.Extensions.DependencyInjection.FromKeyedServicesAttribute")
11+
.FirstOrDefault();
12+
13+
if (keyedService != null)
14+
return keyedService.ConstructorArguments[0].ToCSharpString();
15+
16+
return null;
17+
}
18+
}

src/AutoCtor.Shared/Models/ParameterModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public static ParameterModel Create(IParameterSymbol parameter)
1717
RefKind: parameter.RefKind,
1818
Name: parameter.Name.EscapeKeywordIdentifier(),
1919
ErrorName: parameter.Name,
20-
KeyedService: GeneratorUtilities.GetServiceKey(parameter),
20+
KeyedService: ModelUtilities.GetServiceKey(parameter),
2121
IsOptional: parameter.IsOptional,
2222
IsOutOrRef: parameter.RefKind == RefKind.Ref
2323
|| parameter.RefKind == RefKind.Out,

src/AutoCtor.Tests/AutoCtor.Tests.csproj

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
<PropertyGroup>
44
<TargetFramework>net8.0</TargetFramework>
5+
<OutputType>Exe</OutputType>
56
<IsPackable>false</IsPackable>
67
<NoWarn>CS0169;CS0414</NoWarn>
78
</PropertyGroup>
@@ -41,25 +42,22 @@
4142
<ItemGroup>
4243
<PackageReference Include="GitHubActionsTestLogger" PrivateAssets="all" />
4344
<PackageReference Include="MarkdownSnippets.MsBuild" PrivateAssets="all" />
45+
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" />
4446
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing" />
47+
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" />
4548
<PackageReference Include="Microsoft.NET.Test.Sdk" />
4649
<PackageReference Include="Verify.SourceGenerators" />
47-
<PackageReference Include="Verify.Xunit" />
48-
<PackageReference Include="xunit" />
50+
<PackageReference Include="Verify.XunitV3" />
4951
<PackageReference Include="xunit.analyzers">
5052
<PrivateAssets>all</PrivateAssets>
5153
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
5254
</PackageReference>
5355
<PackageReference Include="xunit.runner.visualstudio" PrivateAssets="all" />
56+
<PackageReference Include="xunit.v3" />
5457
</ItemGroup>
5558

5659
<ItemGroup>
5760
<ProjectReference Include="..\AutoCtor.Attributes\AutoCtor.Attributes.csproj" />
58-
</ItemGroup>
59-
60-
<ItemGroup>
61-
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" />
62-
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" />
6361
<ProjectReference Include="..\AutoCtor.Roslyn$(GeneratorVersion)\AutoCtor.Roslyn$(GeneratorVersion).csproj" />
6462
</ItemGroup>
6563

src/AutoCtor.Tests/ExampleTests.cs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,12 @@ public async Task ExamplesGeneratedCode(CodeFileTheoryData theoryData)
1717
.AddGenerator(new AutoConstructSourceGenerator())
1818
.WithAnalyzerOptions(theoryData.Options)
1919
.Build(builder.ParseOptions)
20-
.RunGenerators(compilation);
20+
.RunGenerators(compilation, TestContext.Current.CancellationToken);
2121

2222
await Verify(driver)
2323
.UseDirectory(theoryData.VerifiedDirectory)
24-
.UseTypeName(theoryData.Name);
24+
.UseTypeName(theoryData.Name)
25+
.IgnoreParametersForVerified();
2526
}
2627

2728
[Theory]
@@ -34,9 +35,9 @@ public async Task CodeCompilesProperly(CodeFileTheoryData theoryData)
3435
.AddGenerator(new AutoConstructSourceGenerator())
3536
.WithAnalyzerOptions(theoryData.Options)
3637
.Build(builder.ParseOptions)
37-
.RunGeneratorsAndUpdateCompilation(compilation, out var outputCompilation, out _);
38+
.RunGeneratorsAndUpdateCompilation(compilation, out var outputCompilation, out _, TestContext.Current.CancellationToken);
3839

39-
Assert.Empty(outputCompilation.GetDiagnostics().Where(d => !theoryData.IgnoredCompileDiagnostics.Contains(d.Id)));
40+
Assert.Empty(outputCompilation.GetDiagnostics(TestContext.Current.CancellationToken).Where(d => !theoryData.IgnoredCompileDiagnostics.Contains(d.Id)));
4041
}
4142

4243
#if ROSLYN_4_4
@@ -52,16 +53,17 @@ public async Task EnsureRunsAreCachedCorrectly(CodeFileTheoryData theoryData)
5253
.WithAnalyzerOptions(theoryData.Options)
5354
.Build(builder.ParseOptions);
5455

55-
driver = driver.RunGenerators(compilation);
56+
driver = driver.RunGenerators(compilation, TestContext.Current.CancellationToken);
5657
var firstResult = driver.GetRunResult();
5758

5859
// Change the compilation
5960
compilation = compilation.AddSyntaxTrees(CSharpSyntaxTree.ParseText("// dummy",
6061
CSharpParseOptions.Default.WithLanguageVersion(theoryData.LangPreview
6162
? LanguageVersion.Preview
62-
: LanguageVersion.Latest)));
63+
: LanguageVersion.Latest),
64+
cancellationToken: TestContext.Current.CancellationToken));
6365

64-
driver = driver.RunGenerators(compilation);
66+
driver = driver.RunGenerators(compilation, TestContext.Current.CancellationToken);
6567
var secondResult = driver.GetRunResult();
6668

6769
AssertRunsEqual(firstResult, secondResult,

src/AutoCtor.Tests/GeneratedAttributeTests.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public async Task AttributeGeneratedCode()
1212
var driver = new GeneratorDriverBuilder()
1313
.AddGenerator(new AttributeSourceGenerator())
1414
.Build(builder.ParseOptions)
15-
.RunGenerators(compilation);
15+
.RunGenerators(compilation, TestContext.Current.CancellationToken);
1616

1717
await Verify(driver);
1818
}
@@ -27,10 +27,10 @@ public async Task AttributeCompilesProperly()
2727
var driver = new GeneratorDriverBuilder()
2828
.AddGenerator(new AttributeSourceGenerator())
2929
.Build(builder.ParseOptions)
30-
.RunGeneratorsAndUpdateCompilation(compilation, out var outputCompilation, out var diagnostics);
30+
.RunGeneratorsAndUpdateCompilation(compilation, out var outputCompilation, out var diagnostics, TestContext.Current.CancellationToken);
3131

3232
Assert.Empty(diagnostics);
33-
Assert.Empty(outputCompilation.GetDiagnostics());
33+
Assert.Empty(outputCompilation.GetDiagnostics(TestContext.Current.CancellationToken));
3434
}
3535

3636
[Fact]
@@ -46,9 +46,9 @@ public async Task PreserveAttributesTest()
4646
.AddGenerator(new AttributeSourceGenerator())
4747
.AddGenerator(new AutoConstructSourceGenerator())
4848
.Build(builder.ParseOptions)
49-
.RunGeneratorsAndUpdateCompilation(compilation, out var outputCompilation, out var diagnostics);
49+
.RunGeneratorsAndUpdateCompilation(compilation, out var outputCompilation, out var diagnostics, TestContext.Current.CancellationToken);
5050

5151
Assert.Empty(diagnostics);
52-
Assert.Empty(outputCompilation.GetDiagnostics());
52+
Assert.Empty(outputCompilation.GetDiagnostics(TestContext.Current.CancellationToken));
5353
}
5454
}

src/AutoCtor.Tests/Issue73.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public async Task VerifyGeneratedCode()
1313
var driver = new GeneratorDriverBuilder()
1414
.AddGenerator(new AutoConstructSourceGenerator())
1515
.Build(common.ParseOptions)
16-
.RunGenerators(compilation);
16+
.RunGenerators(compilation, TestContext.Current.CancellationToken);
1717

1818
await Verify(driver);
1919
}
@@ -28,10 +28,10 @@ public async Task CodeCompilesWithoutErrors()
2828
new GeneratorDriverBuilder()
2929
.AddGenerator(new AutoConstructSourceGenerator())
3030
.Build(common.ParseOptions)
31-
.RunGeneratorsAndUpdateCompilation(compilation, out var outputCompilation, out var diagnostics);
31+
.RunGeneratorsAndUpdateCompilation(compilation, out var outputCompilation, out var diagnostics, TestContext.Current.CancellationToken);
3232

3333
Assert.Empty(diagnostics);
34-
Assert.Empty(outputCompilation.GetDiagnostics().Where(d => !ignoredWarnings.Contains(d.Id)));
34+
Assert.Empty(outputCompilation.GetDiagnostics(TestContext.Current.CancellationToken).Where(d => !ignoredWarnings.Contains(d.Id)));
3535
}
3636

3737
private static CompilationBuilder Common()

src/AutoCtor.Tests/Utilities/CodeFileTheoryData.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using System.Diagnostics.CodeAnalysis;
22
using Microsoft.CodeAnalysis;
3-
using Xunit.Abstractions;
3+
using Xunit.Sdk;
44

55
public record CodeFileTheoryData : IXunitSerializable
66
{

0 commit comments

Comments
 (0)