diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md
index 905ea51..0e42e7d 100644
--- a/.github/copilot-instructions.md
+++ b/.github/copilot-instructions.md
@@ -23,16 +23,16 @@ samples/ # Readme sample project
## Build & SDK
-| Setting | Value |
-|---|---|
-| .NET SDK | 10.0.x (`global.json`, `rollForward: latestMinor`) |
-| Target frameworks | `net8.0` + `net10.0` (library); `net8.0;net9.0;net10.0` (functional tests) |
-| C# language version | `12.0` on `net8.0`, `14.0` on `net10.0` |
-| Nullable | `enable` |
-| Implicit usings | `enable` |
-| Warnings as errors | `TreatWarningsAsErrors = true` — **zero warnings allowed** |
-| Suppressed warning | `CS1591` (missing XML doc) |
-| Assembly signing | `Key.snk` (src projects only) |
+| Setting | Value |
+|---------------------|----------------------------------------------------------------------------|
+| .NET SDK | 10.0.x (`global.json`, `rollForward: latestMinor`) |
+| Target frameworks | `net8.0` + `net10.0` (library); `net8.0;net9.0;net10.0` (functional tests) |
+| C# language version | `12.0` on `net8.0`, `14.0` on `net10.0` |
+| Nullable | `enable` |
+| Implicit usings | `enable` |
+| Warnings as errors | `TreatWarningsAsErrors = true` — **zero warnings allowed** |
+| Suppressed warning | `CS1591` (missing XML doc) |
+| Assembly signing | `Key.snk` (src projects only) |
The generator project targets `netstandard2.0` only (Roslyn analyzers requirement).
@@ -98,18 +98,18 @@ Use file-scoped namespaces (`namespace Foo;`) in all new files **except** when t
## Testing Guidelines
### Test projects and frameworks
-| Project | Framework | Library |
-|---|---|---|
-| `Generator.Tests` | xUnit 2 | `Verify.Xunit` snapshot testing |
-| `FunctionalTests` | xUnit 2 + ScenarioTests | `Verify.Xunit` + `Microsoft.EntityFrameworkCore.SqlServer` |
-| `Tests` | xUnit 2 | plain assertions |
+| Project | Framework | Library |
+|-------------------|--------------------------|--------------------------------------------------------------|
+| `Generator.Tests` | xUnit v3 | `Verify.XunitV3` snapshot testing for the code generator |
+| `CodeFixer.Tests` | xUnit v3 | `Verify.XunitV3` snapshot testing for the code fixes |
+| `FunctionalTests` | xUnit v3 + ScenarioTests | `Verify.XunitV3` + `Microsoft.EntityFrameworkCore.SqlServer` |
+| `Tests` | xUnit v3 | plain assertions |
-### Verify.Xunit — snapshot testing
+### Verify.XunitV3 — snapshot testing
**Every test that calls `Verifier.Verify(...)` must:**
1. Return `Task` (not `void`)
-2. Have `[UsesVerify]` on the class
-3. Have a corresponding `.verified.txt` file committed alongside the test file
+2. Have a corresponding `.verified.txt` file committed alongside the test file
**Naming convention for verified files:**
`{ClassName}.{MethodName}.verified.txt`
@@ -223,17 +223,17 @@ $env:VERIFY_AUTO_APPROVE = "true"; dotnet test
### Key files in `EntityFrameworkCore.Projectables.Generator`
-| File | Responsibility |
-|---|---|
-| `ProjectionExpressionGenerator.cs` | `IIncrementalGenerator` entry point — wires up the pipeline |
-| `ProjectableInterpreter.cs` (+ partials) | Converts a `MemberDeclarationSyntax` into a `ProjectableDescriptor` |
-| `ExpressionSyntaxRewriter.cs` (+ partials) | Rewrites expressions: null-conditionals, enum expansions, switch expressions |
-| `DeclarationSyntaxRewriter.cs` | Rewrites declarations (fully-qualified names, etc.) |
-| `BlockStatementConverter.cs` | Converts block-bodied methods to expression trees |
-| `ProjectableDescriptor.cs` | Pure data record describing a projectable member |
-| `ProjectableAttributeData.cs` | Serializable snapshot of `[Projectable]` attribute values (no live Roslyn objects) |
-| `ProjectionRegistryEmitter.cs` | Emits `ProjectionRegistry.g.cs` |
-| `Diagnostics.cs` | All `DiagnosticDescriptor` constants (EFP0001–EFP0009) |
+| File | Responsibility |
+|--------------------------------------------|------------------------------------------------------------------------------------|
+| `ProjectionExpressionGenerator.cs` | `IIncrementalGenerator` entry point — wires up the pipeline |
+| `ProjectableInterpreter.cs` (+ partials) | Converts a `MemberDeclarationSyntax` into a `ProjectableDescriptor` |
+| `ExpressionSyntaxRewriter.cs` (+ partials) | Rewrites expressions: null-conditionals, enum expansions, switch expressions |
+| `DeclarationSyntaxRewriter.cs` | Rewrites declarations (fully-qualified names, etc.) |
+| `BlockStatementConverter.cs` | Converts block-bodied methods to expression trees |
+| `ProjectableDescriptor.cs` | Pure data record describing a projectable member |
+| `ProjectableAttributeData.cs` | Serializable snapshot of `[Projectable]` attribute values (no live Roslyn objects) |
+| `ProjectionRegistryEmitter.cs` | Emits `ProjectionRegistry.g.cs` |
+| `Diagnostics.cs` | All `DiagnosticDescriptor` constants (EFP0001–EFP0009) |
### Incremental generator rules
- **Never capture live Roslyn objects** (`ISymbol`, `SemanticModel`, `Compilation`, `AttributeData`) in the incremental pipeline transforms — they break caching. Use `ProjectableAttributeData` (a plain struct) instead.
@@ -243,15 +243,15 @@ $env:VERIFY_AUTO_APPROVE = "true"; dotnet test
## Diagnostics Reference
-| ID | Severity | Title |
-|---|---|---|
-| EFP0001 | Warning | Block-bodied member support is experimental |
-| EFP0002 | Error | Null-conditional expression unsupported |
-| EFP0003 | Warning | Unsupported statement in block-bodied method |
-| EFP0004 | Error | Statement with side effects in block-bodied method |
-| EFP0005 | Warning | Potential side effect in block-bodied method |
-| EFP0006 | Error | Method/property should expose a body definition |
-| EFP0007 | Warning | Non-projectable method call in block body |
+| ID | Severity | Title |
+|---------|----------|----------------------------------------------------|
+| EFP0001 | Warning | Block-bodied member support is experimental |
+| EFP0002 | Error | Null-conditional expression unsupported |
+| EFP0003 | Warning | Unsupported statement in block-bodied method |
+| EFP0004 | Error | Statement with side effects in block-bodied method |
+| EFP0005 | Warning | Potential side effect in block-bodied method |
+| EFP0006 | Error | Method/property should expose a body definition |
+| EFP0007 | Warning | Non-projectable method call in block body |
---
diff --git a/Directory.Packages.props b/Directory.Packages.props
index e859f56..ff81c4d 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -6,31 +6,31 @@
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
\ No newline at end of file
diff --git a/src/EntityFrameworkCore.Projectables.Generator/AnalyzerReleases.Shipped.md b/src/EntityFrameworkCore.Projectables.Generator/AnalyzerReleases.Shipped.md
index 5c81204..221d177 100644
--- a/src/EntityFrameworkCore.Projectables.Generator/AnalyzerReleases.Shipped.md
+++ b/src/EntityFrameworkCore.Projectables.Generator/AnalyzerReleases.Shipped.md
@@ -2,30 +2,30 @@
### New Rules
-Rule ID | Category | Severity | Notes
---------|----------|----------|-------------------------------------------------------------------------
-EFP0003 | Design | Warning | Unsupported statement in block-bodied method
-EFP0004 | Design | Error | Statement with side effects in block-bodied method
-EFP0005 | Design | Warning | Potential side effect in block-bodied method
-EFP0006 | Design | Error | Method or property should expose a body definition (block or expression)
-EFP0007 | Design | Error | Unsupported pattern in projectable expression
-EFP0008 | Design | Error | Target class is missing a parameterless constructor
-EFP0009 | Design | Error | Delegated constructor cannot be analyzed for projection
-EFP0010 | Design | Error | UseMemberBody target member not found
-EFP0011 | Design | Error | UseMemberBody target member is incompatible
-EFP0012 | Design | Info | [Projectable] factory method can be converted to a constructor
+| Rule ID | Category | Severity | Notes |
+|---------|----------|----------|--------------------------------------------------------------------------|
+| EFP0003 | Design | Warning | Unsupported statement in block-bodied method |
+| EFP0004 | Design | Error | Statement with side effects in block-bodied method |
+| EFP0005 | Design | Warning | Potential side effect in block-bodied method |
+| EFP0006 | Design | Error | Method or property should expose a body definition (block or expression) |
+| EFP0007 | Design | Error | Unsupported pattern in projectable expression |
+| EFP0008 | Design | Error | Target class is missing a parameterless constructor |
+| EFP0009 | Design | Error | Delegated constructor cannot be analyzed for projection |
+| EFP0010 | Design | Error | UseMemberBody target member not found |
+| EFP0011 | Design | Error | UseMemberBody target member is incompatible |
+| EFP0012 | Design | Info | [Projectable] factory method can be converted to a constructor |
### Changed Rules
-Rule ID | New Category | New Severity | Old Category | Old Severity | Notes
---------|--------------|--------------|--------------|--------------|-----------------------------------------------------------------
-EFP0001 | Design | Warning | Design | Error | Changed to warning for experimental block-bodied members support
+| Rule ID | New Category | New Severity | Old Category | Old Severity | Notes |
+|---------|--------------|--------------|--------------|--------------|------------------------------------------------------------------|
+| EFP0001 | Design | Warning | Design | Error | Changed to warning for experimental block-bodied members support |
## Release 5.0
### New Rules
-Rule ID | Category | Severity | Notes
---------|----------|----------|------------------------------------------------------------------------------
-EFP0001 | Design | Error | Method or property should expose an expression body definition
-EFP0002 | Design | Error | Method or property is not configured to support null-conditional expressions
+| Rule ID | Category | Severity | Notes |
+|---------|----------|----------|------------------------------------------------------------------------------|
+| EFP0001 | Design | Error | Method or property should expose an expression body definition |
+| EFP0002 | Design | Error | Method or property is not configured to support null-conditional expressions |
diff --git a/tests/EntityFrameworkCore.Projectables.CodeFixes.Tests/BlockBodyExperimentalCodeFixProviderTests.cs b/tests/EntityFrameworkCore.Projectables.CodeFixes.Tests/BlockBodyExperimentalCodeFixProviderTests.cs
index 843aa22..dc7a1aa 100644
--- a/tests/EntityFrameworkCore.Projectables.CodeFixes.Tests/BlockBodyExperimentalCodeFixProviderTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.CodeFixes.Tests/BlockBodyExperimentalCodeFixProviderTests.cs
@@ -10,7 +10,6 @@ namespace EntityFrameworkCore.Projectables.CodeFixes.Tests;
/// Tests for (EFP0001).
/// The fix adds AllowBlockBody = true to the [Projectable] attribute.
///
-[UsesVerify]
public class BlockBodyExperimentalCodeFixProviderTests : CodeFixTestBase
{
private readonly static BlockBodyExperimentalCodeFixProvider _provider = new();
diff --git a/tests/EntityFrameworkCore.Projectables.CodeFixes.Tests/EntityFrameworkCore.Projectables.CodeFixes.Tests.csproj b/tests/EntityFrameworkCore.Projectables.CodeFixes.Tests/EntityFrameworkCore.Projectables.CodeFixes.Tests.csproj
index 5771aea..d101a0c 100644
--- a/tests/EntityFrameworkCore.Projectables.CodeFixes.Tests/EntityFrameworkCore.Projectables.CodeFixes.Tests.csproj
+++ b/tests/EntityFrameworkCore.Projectables.CodeFixes.Tests/EntityFrameworkCore.Projectables.CodeFixes.Tests.csproj
@@ -2,6 +2,7 @@
false
+ exe
@@ -16,8 +17,8 @@
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/tests/EntityFrameworkCore.Projectables.CodeFixes.Tests/FactoryMethodToCtorCodeFixProviderTests.cs b/tests/EntityFrameworkCore.Projectables.CodeFixes.Tests/FactoryMethodToCtorCodeFixProviderTests.cs
index f5a5744..93a8eb5 100644
--- a/tests/EntityFrameworkCore.Projectables.CodeFixes.Tests/FactoryMethodToCtorCodeFixProviderTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.CodeFixes.Tests/FactoryMethodToCtorCodeFixProviderTests.cs
@@ -4,7 +4,6 @@
/// Tests for (EFP0012).
/// Verifies the code fix output via Verify.Xunit snapshots.
///
-[UsesVerify]
public class FactoryMethodToCtorCodeFixProviderTests : CodeFixTestBase
{
private readonly static FactoryMethodToCtorCodeFixProvider _provider = new();
diff --git a/tests/EntityFrameworkCore.Projectables.CodeFixes.Tests/FactoryMethodToCtorCodeRefProviderTests.cs b/tests/EntityFrameworkCore.Projectables.CodeFixes.Tests/FactoryMethodToCtorCodeRefProviderTests.cs
index 78ee2ad..4061ad2 100644
--- a/tests/EntityFrameworkCore.Projectables.CodeFixes.Tests/FactoryMethodToCtorCodeRefProviderTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.CodeFixes.Tests/FactoryMethodToCtorCodeRefProviderTests.cs
@@ -7,7 +7,6 @@ namespace EntityFrameworkCore.Projectables.CodeFixes.Tests;
/// Tests for .
/// Each test verifies via Verify.Xunit snapshots (.verified.txt files).
///
-[UsesVerify]
public class FactoryMethodToCtorCodeRefProviderTests : RefactoringTestBase
{
private readonly static FactoryMethodToConstructorCodeRefactoringProvider _provider = new();
diff --git a/tests/EntityFrameworkCore.Projectables.CodeFixes.Tests/MissingParamLessConstructorCodeFixProviderTests.cs b/tests/EntityFrameworkCore.Projectables.CodeFixes.Tests/MissingParamLessConstructorCodeFixProviderTests.cs
index d90bcbe..441a61f 100644
--- a/tests/EntityFrameworkCore.Projectables.CodeFixes.Tests/MissingParamLessConstructorCodeFixProviderTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.CodeFixes.Tests/MissingParamLessConstructorCodeFixProviderTests.cs
@@ -10,7 +10,6 @@ namespace EntityFrameworkCore.Projectables.CodeFixes.Tests;
/// Tests for (EFP0008).
/// The fix inserts a public ClassName() { } constructor at the top of the class body.
///
-[UsesVerify]
public class MissingParamLessConstructorCodeFixProviderTests : CodeFixTestBase
{
private readonly static MissingParameterlessConstructorCodeFixProvider _provider = new();
diff --git a/tests/EntityFrameworkCore.Projectables.CodeFixes.Tests/NullConditionalRewriteUnsupportedCodeFixProviderTests.cs b/tests/EntityFrameworkCore.Projectables.CodeFixes.Tests/NullConditionalRewriteUnsupportedCodeFixProviderTests.cs
index 36f4d22..15f4449 100644
--- a/tests/EntityFrameworkCore.Projectables.CodeFixes.Tests/NullConditionalRewriteUnsupportedCodeFixProviderTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.CodeFixes.Tests/NullConditionalRewriteUnsupportedCodeFixProviderTests.cs
@@ -11,7 +11,6 @@ namespace EntityFrameworkCore.Projectables.CodeFixes.Tests;
/// The fix sets NullConditionalRewriteSupport on the [Projectable] attribute to
/// either Ignore (action index 0) or Rewrite (action index 1).
///
-[UsesVerify]
public class NullConditionalRewriteUnsupportedCodeFixProviderTests : CodeFixTestBase
{
private readonly static NullConditionalRewriteUnsupportedCodeFixProvider _provider = new();
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/BlockBodiedMethods/BlockBodiedMethodTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/BlockBodiedMethods/BlockBodiedMethodTests.cs
index 98320b3..1dfae49 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/BlockBodiedMethods/BlockBodiedMethodTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/BlockBodiedMethods/BlockBodiedMethodTests.cs
@@ -7,7 +7,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests.BlockBodiedMethods
{
- [UsesVerify]
public class BlockBodiedMethodTests
{
public record Entity
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/BlockBodiedMethods/BlockBodyProjectableCallTest.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/BlockBodiedMethods/BlockBodyProjectableCallTest.cs
index 99cbb3e..ae86ab5 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/BlockBodiedMethods/BlockBodyProjectableCallTest.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/BlockBodiedMethods/BlockBodyProjectableCallTest.cs
@@ -10,7 +10,6 @@ namespace EntityFrameworkCore.Projectables.FunctionalTests.BlockBodiedMethods
///
/// Tests for calling projectable methods from within block-bodied methods
///
- [UsesVerify]
public class BlockBodyProjectableCallTests
{
public record Entity
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/ChangeTrackerTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/ChangeTrackerTests.cs
index 41bddf4..723f616 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/ChangeTrackerTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/ChangeTrackerTests.cs
@@ -43,34 +43,34 @@ public record Entity
public async Task CanQueryAndChangeTrackedEntities()
{
using var dbContext = new SqliteSampleDbContext();
- await dbContext.Database.EnsureDeletedAsync();
- await dbContext.Database.EnsureCreatedAsync();
+ await dbContext.Database.EnsureDeletedAsync(TestContext.Current.CancellationToken);
+ await dbContext.Database.EnsureCreatedAsync(TestContext.Current.CancellationToken);
dbContext.Add(new Entity());
- await dbContext.SaveChangesAsync();
+ await dbContext.SaveChangesAsync(TestContext.Current.CancellationToken);
dbContext.ChangeTracker.Clear();
- var entity = await dbContext.Set().AsTracking().FirstAsync();
+ var entity = await dbContext.Set().AsTracking().FirstAsync(cancellationToken: TestContext.Current.CancellationToken);
var entityEntry = dbContext.ChangeTracker.Entries().Single();
Assert.Same(entityEntry.Entity, entity);
dbContext.Set().Remove(entity);
- await dbContext.SaveChangesAsync();
+ await dbContext.SaveChangesAsync(TestContext.Current.CancellationToken);
}
[Fact]
public async Task CanSaveChanges()
{
using var dbContext = new SqliteSampleDbContext();
- await dbContext.Database.EnsureDeletedAsync();
- await dbContext.Database.EnsureCreatedAsync();
+ await dbContext.Database.EnsureDeletedAsync(TestContext.Current.CancellationToken);
+ await dbContext.Database.EnsureCreatedAsync(TestContext.Current.CancellationToken);
dbContext.Add(new Entity());
- await dbContext.SaveChangesAsync();
+ await dbContext.SaveChangesAsync(TestContext.Current.CancellationToken);
dbContext.ChangeTracker.Clear();
- var entity = await dbContext.Set().AsTracking().FirstAsync();
+ var entity = await dbContext.Set().AsTracking().FirstAsync(cancellationToken: TestContext.Current.CancellationToken);
entity.Name = "test";
- await dbContext.SaveChangesAsync();
+ await dbContext.SaveChangesAsync(TestContext.Current.CancellationToken);
dbContext.ChangeTracker.Clear();
- var entity2 = await dbContext.Set().FirstAsync();
+ var entity2 = await dbContext.Set().FirstAsync(cancellationToken: TestContext.Current.CancellationToken);
Assert.Equal("test", entity2.Name);
}
}
\ No newline at end of file
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/ClosureMemberAccessTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/ClosureMemberAccessTests.cs
index c642bf5..b5431b3 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/ClosureMemberAccessTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/ClosureMemberAccessTests.cs
@@ -39,7 +39,6 @@ namespace EntityFrameworkCore.Projectables.FunctionalTests;
/// 7. Closure capturing an IEnumerable<Entity> field holding an EF query – GetValue() is called
/// because IEnumerable<T> satisfies the type gate; runtime value is IQueryable, so the subquery is inlined
///
-[UsesVerify]
public class ClosureMemberAccessTests
{
public record Entity
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/ComplexArgumentsTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/ComplexArgumentsTests.cs
index a3028c6..f4fcb9d 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/ComplexArgumentsTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/ComplexArgumentsTests.cs
@@ -10,7 +10,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests
{
- [UsesVerify]
public class ComplexArgumentsTests
{
public class TestEntity
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/ComplexModelTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/ComplexModelTests.cs
index 05d0e80..bc2b219 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/ComplexModelTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/ComplexModelTests.cs
@@ -7,7 +7,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests
{
- [UsesVerify]
public class ComplexModelTests
{
public class User
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/DefaultValueTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/DefaultValueTests.cs
index 3fc7dd7..f1dd58f 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/DefaultValueTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/DefaultValueTests.cs
@@ -7,7 +7,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests
{
- [UsesVerify]
public class DefaultValueTests
{
public record Entity
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/EntityFrameworkCore.Projectables.FunctionalTests.csproj b/tests/EntityFrameworkCore.Projectables.FunctionalTests/EntityFrameworkCore.Projectables.FunctionalTests.csproj
index a43b03b..68c17ad 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/EntityFrameworkCore.Projectables.FunctionalTests.csproj
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/EntityFrameworkCore.Projectables.FunctionalTests.csproj
@@ -3,6 +3,7 @@
net8.0;net9.0;net10.0
false
+ exe
@@ -13,12 +14,12 @@
-
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/ExpandEnumMethodsTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/ExpandEnumMethodsTests.cs
index d31a85d..8d6368a 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/ExpandEnumMethodsTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/ExpandEnumMethodsTests.cs
@@ -9,7 +9,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests
{
- [UsesVerify]
public class ExpandEnumMethodsTests
{
public enum OrderStatus
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/ExplicitInterfaceImplementationTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/ExplicitInterfaceImplementationTests.cs
index b72fb50..fde211a 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/ExplicitInterfaceImplementationTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/ExplicitInterfaceImplementationTests.cs
@@ -10,7 +10,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests
{
- [UsesVerify]
public class ExplicitInterfaceImplementationTests
{
public interface IStringId
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/ExtensionMembers/ExtensionMemberTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/ExtensionMembers/ExtensionMemberTests.cs
index 28e333f..cf776d1 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/ExtensionMembers/ExtensionMemberTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/ExtensionMembers/ExtensionMemberTests.cs
@@ -14,7 +14,6 @@ namespace EntityFrameworkCore.Projectables.FunctionalTests.ExtensionMembers
/// Note: Extension properties cannot currently be used directly in LINQ expression trees (CS9296),
/// so only extension methods are tested here.
///
- [UsesVerify]
public class ExtensionMemberTests
{
[Fact]
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/ExtensionsMethods/ExtensionMethodTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/ExtensionsMethods/ExtensionMethodTests.cs
index d6032e5..e9f837f 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/ExtensionsMethods/ExtensionMethodTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/ExtensionsMethods/ExtensionMethodTests.cs
@@ -12,7 +12,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests.ExtensionMethods
{
- [UsesVerify]
public class ExtensionMethodTests
{
[Fact]
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/Generics/GenericEntityTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/Generics/GenericEntityTests.cs
index 4bb7d54..4e8defc 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/Generics/GenericEntityTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/Generics/GenericEntityTests.cs
@@ -10,7 +10,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests.Generics
{
- [UsesVerify]
public class GenericEntityTests
{
public abstract class BaseEntity
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/Generics/GenericExtensionMethodTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/Generics/GenericExtensionMethodTests.cs
index 3ba3517..6acde4a 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/Generics/GenericExtensionMethodTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/Generics/GenericExtensionMethodTests.cs
@@ -10,7 +10,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests.Generics
{
- [UsesVerify]
public class GenericFunctionTests
{
[Fact]
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/Generics/MultipleGenericsTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/Generics/MultipleGenericsTests.cs
index 56cba75..f495ae4 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/Generics/MultipleGenericsTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/Generics/MultipleGenericsTests.cs
@@ -10,7 +10,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests.Generics
{
- [UsesVerify]
public class MultipleGenericsTests
{
[Projectable]
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/InheritedMembersTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/InheritedMembersTests.cs
index 1a8d8ed..ac7d127 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/InheritedMembersTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/InheritedMembersTests.cs
@@ -10,7 +10,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests
{
- [UsesVerify]
public class InheritedMembersTests
{
public abstract class Animal
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/InheritedModelTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/InheritedModelTests.cs
index 1bd9866..fab7319 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/InheritedModelTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/InheritedModelTests.cs
@@ -16,7 +16,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests
{
- [UsesVerify]
public class InheritedModelTests
{
public interface IBaseProvider
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/MethodGroupTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/MethodGroupTests.cs
index d9e8ab4..21cda72 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/MethodGroupTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/MethodGroupTests.cs
@@ -8,7 +8,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests;
-[UsesVerify]
public class MethodGroupTests
{
public record Entity
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/MethodOverloadsTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/MethodOverloadsTests.cs
index dbe24c4..e7bcebb 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/MethodOverloadsTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/MethodOverloadsTests.cs
@@ -8,7 +8,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests
{
- [UsesVerify]
public class MethodOverloadsTests
{
public record Entity
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/NameSyntaxTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/NameSyntaxTests.cs
index 0803a94..8abe6da 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/NameSyntaxTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/NameSyntaxTests.cs
@@ -19,7 +19,6 @@ public enum SampleEnum
}
}
- [UsesVerify]
public class NameSyntaxTests
{
public class Entity
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/NullConditionals/IngoreNullConditionalRewriteTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/NullConditionals/IngoreNullConditionalRewriteTests.cs
index 44e48d5..d16b6f3 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/NullConditionals/IngoreNullConditionalRewriteTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/NullConditionals/IngoreNullConditionalRewriteTests.cs
@@ -9,7 +9,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests.NullConditionals
{
- [UsesVerify]
public class IngoreNullConditionalRewriteTests
{
[Fact]
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/NullConditionals/RewriteNullConditionalRewriteTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/NullConditionals/RewriteNullConditionalRewriteTests.cs
index d59e756..51d9779 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/NullConditionals/RewriteNullConditionalRewriteTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/NullConditionals/RewriteNullConditionalRewriteTests.cs
@@ -9,7 +9,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests.NullConditionals
{
- [UsesVerify]
public class RewriteNullConditionalRewriteTests
{
[Fact]
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/PrivateProjectables.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/PrivateProjectables.cs
index bd34ed3..d190325 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/PrivateProjectables.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/PrivateProjectables.cs
@@ -10,7 +10,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests
{
- [UsesVerify]
public class PrivateProjectables
{
public record Entity
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/ProjectableConstructorTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/ProjectableConstructorTests.cs
index af6d9ea..aa1b945 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/ProjectableConstructorTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/ProjectableConstructorTests.cs
@@ -9,7 +9,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests
{
- [UsesVerify]
public class ProjectableConstructorTests
{
public class PersonEntity
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/QueryRootTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/QueryRootTests.cs
index f46289e..eee05c8 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/QueryRootTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/QueryRootTests.cs
@@ -4,7 +4,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests
{
- [UsesVerify]
public class QueryRootTests
{
public record Entity
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/StatefullComplexFunctionTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/StatefullComplexFunctionTests.cs
index 86d5970..661efdd 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/StatefullComplexFunctionTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/StatefullComplexFunctionTests.cs
@@ -12,7 +12,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests
{
- [UsesVerify]
public class StatefullComplexFunctionTests
{
public record Entity
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/StatefullPropertyTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/StatefullPropertyTests.cs
index 81a0a60..06260a1 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/StatefullPropertyTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/StatefullPropertyTests.cs
@@ -11,7 +11,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests
{
- [UsesVerify]
public class StatefullPropertyTests
{
public record Entity
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/StatefullSimpleFunctionTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/StatefullSimpleFunctionTests.cs
index 0f4c7e3..931c559 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/StatefullSimpleFunctionTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/StatefullSimpleFunctionTests.cs
@@ -11,7 +11,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests
{
- [UsesVerify]
public class StatefullSimpleFunctionTests
{
public record Entity
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/StatelessComplexFunctionTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/StatelessComplexFunctionTests.cs
index a1bb9ac..fe5bcee 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/StatelessComplexFunctionTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/StatelessComplexFunctionTests.cs
@@ -12,7 +12,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests
{
- [UsesVerify]
public class StatelessComplexFunctionTests
{
public record Entity
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/StatelessSimpleFunctionTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/StatelessSimpleFunctionTests.cs
index 763e2ec..5c11e34 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/StatelessSimpleFunctionTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/StatelessSimpleFunctionTests.cs
@@ -11,7 +11,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests
{
- [UsesVerify]
public class StatelessSimpleFunctionTests
{
public record Entity
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/StaticMembersTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/StaticMembersTests.cs
index f89e096..821bd53 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/StaticMembersTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/StaticMembersTests.cs
@@ -12,7 +12,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests
{
- [UsesVerify]
public class StaticMembersTests
{
public static class Constants
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/TypeNameQualificationTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/TypeNameQualificationTests.cs
index efc030f..68fe05e 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/TypeNameQualificationTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/TypeNameQualificationTests.cs
@@ -10,7 +10,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests
{
- [UsesVerify]
public class TypeNameQualificationTests
{
public record Entity
diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/UseMemberBodyPropertyTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/UseMemberBodyPropertyTests.cs
index f685128..e08f2eb 100644
--- a/tests/EntityFrameworkCore.Projectables.FunctionalTests/UseMemberBodyPropertyTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/UseMemberBodyPropertyTests.cs
@@ -13,7 +13,6 @@
namespace EntityFrameworkCore.Projectables.FunctionalTests
{
- [UsesVerify]
public class UseMemberBodyPropertyTests
{
public record Entity
diff --git a/tests/EntityFrameworkCore.Projectables.Generator.Tests/BlockBodyTests.cs b/tests/EntityFrameworkCore.Projectables.Generator.Tests/BlockBodyTests.cs
index d9caa24..2ea9fe0 100644
--- a/tests/EntityFrameworkCore.Projectables.Generator.Tests/BlockBodyTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.Generator.Tests/BlockBodyTests.cs
@@ -3,11 +3,9 @@
using Microsoft.CodeAnalysis;
using VerifyXunit;
using Xunit;
-using Xunit.Abstractions;
namespace EntityFrameworkCore.Projectables.Generator.Tests;
-[UsesVerify]
public class BlockBodyTests : ProjectionExpressionGeneratorTestsBase
{
public BlockBodyTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { }
diff --git a/tests/EntityFrameworkCore.Projectables.Generator.Tests/ConstructorTests.cs b/tests/EntityFrameworkCore.Projectables.Generator.Tests/ConstructorTests.cs
index cec1dc4..88ae4b6 100644
--- a/tests/EntityFrameworkCore.Projectables.Generator.Tests/ConstructorTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.Generator.Tests/ConstructorTests.cs
@@ -3,11 +3,9 @@
using Microsoft.CodeAnalysis;
using VerifyXunit;
using Xunit;
-using Xunit.Abstractions;
namespace EntityFrameworkCore.Projectables.Generator.Tests;
-[UsesVerify]
public class ConstructorTests : ProjectionExpressionGeneratorTestsBase
{
public ConstructorTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { }
diff --git a/tests/EntityFrameworkCore.Projectables.Generator.Tests/EntityFrameworkCore.Projectables.Generator.Tests.csproj b/tests/EntityFrameworkCore.Projectables.Generator.Tests/EntityFrameworkCore.Projectables.Generator.Tests.csproj
index f9cbd7b..f91e751 100644
--- a/tests/EntityFrameworkCore.Projectables.Generator.Tests/EntityFrameworkCore.Projectables.Generator.Tests.csproj
+++ b/tests/EntityFrameworkCore.Projectables.Generator.Tests/EntityFrameworkCore.Projectables.Generator.Tests.csproj
@@ -2,6 +2,7 @@
false
+ exe
@@ -20,9 +21,9 @@
-
-
-
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/tests/EntityFrameworkCore.Projectables.Generator.Tests/EnumTests.cs b/tests/EntityFrameworkCore.Projectables.Generator.Tests/EnumTests.cs
index 6046f45..99dda4f 100644
--- a/tests/EntityFrameworkCore.Projectables.Generator.Tests/EnumTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.Generator.Tests/EnumTests.cs
@@ -1,11 +1,9 @@
using System.Threading.Tasks;
using VerifyXunit;
using Xunit;
-using Xunit.Abstractions;
namespace EntityFrameworkCore.Projectables.Generator.Tests;
-[UsesVerify]
public class EnumTests : ProjectionExpressionGeneratorTestsBase
{
public EnumTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { }
diff --git a/tests/EntityFrameworkCore.Projectables.Generator.Tests/ExtensionMemberTests.cs b/tests/EntityFrameworkCore.Projectables.Generator.Tests/ExtensionMemberTests.cs
index e8552be..f5bdbae 100644
--- a/tests/EntityFrameworkCore.Projectables.Generator.Tests/ExtensionMemberTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.Generator.Tests/ExtensionMemberTests.cs
@@ -1,11 +1,9 @@
using System.Threading.Tasks;
using VerifyXunit;
using Xunit;
-using Xunit.Abstractions;
namespace EntityFrameworkCore.Projectables.Generator.Tests;
-[UsesVerify]
public class ExtensionMemberTests : ProjectionExpressionGeneratorTestsBase
{
public ExtensionMemberTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { }
diff --git a/tests/EntityFrameworkCore.Projectables.Generator.Tests/ExtensionMethodTests.cs b/tests/EntityFrameworkCore.Projectables.Generator.Tests/ExtensionMethodTests.cs
index 0a0812b..b9bcaa7 100644
--- a/tests/EntityFrameworkCore.Projectables.Generator.Tests/ExtensionMethodTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.Generator.Tests/ExtensionMethodTests.cs
@@ -1,11 +1,9 @@
using System.Threading.Tasks;
using VerifyXunit;
using Xunit;
-using Xunit.Abstractions;
namespace EntityFrameworkCore.Projectables.Generator.Tests;
-[UsesVerify]
public class ExtensionMethodTests : ProjectionExpressionGeneratorTestsBase
{
public ExtensionMethodTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { }
diff --git a/tests/EntityFrameworkCore.Projectables.Generator.Tests/FactoryMethodDiagnosticTests.cs b/tests/EntityFrameworkCore.Projectables.Generator.Tests/FactoryMethodDiagnosticTests.cs
index da2c2bf..ad93dd2 100644
--- a/tests/EntityFrameworkCore.Projectables.Generator.Tests/FactoryMethodDiagnosticTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.Generator.Tests/FactoryMethodDiagnosticTests.cs
@@ -1,7 +1,6 @@
using System.Linq;
using Microsoft.CodeAnalysis;
using Xunit;
-using Xunit.Abstractions;
namespace EntityFrameworkCore.Projectables.Generator.Tests;
@@ -41,7 +40,7 @@ class MyObj {
Assert.Equal("EFP0012", diag.Id);
Assert.Equal(DiagnosticSeverity.Info, diag.Severity);
Assert.Equal("Create", diag.Location.SourceTree!
- .GetRoot().FindToken(diag.Location.SourceSpan.Start).ValueText);
+ .GetRoot(TestContext.Current.CancellationToken).FindToken(diag.Location.SourceSpan.Start).ValueText);
}
[Fact]
diff --git a/tests/EntityFrameworkCore.Projectables.Generator.Tests/GenericTests.cs b/tests/EntityFrameworkCore.Projectables.Generator.Tests/GenericTests.cs
index 3bc651b..bdc4ac5 100644
--- a/tests/EntityFrameworkCore.Projectables.Generator.Tests/GenericTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.Generator.Tests/GenericTests.cs
@@ -1,11 +1,9 @@
using System.Threading.Tasks;
using VerifyXunit;
using Xunit;
-using Xunit.Abstractions;
namespace EntityFrameworkCore.Projectables.Generator.Tests;
-[UsesVerify]
public class GenericTests : ProjectionExpressionGeneratorTestsBase
{
public GenericTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { }
diff --git a/tests/EntityFrameworkCore.Projectables.Generator.Tests/IncrementalGeneratorTests.cs b/tests/EntityFrameworkCore.Projectables.Generator.Tests/IncrementalGeneratorTests.cs
index 667aeb3..f8dca38 100644
--- a/tests/EntityFrameworkCore.Projectables.Generator.Tests/IncrementalGeneratorTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.Generator.Tests/IncrementalGeneratorTests.cs
@@ -1,7 +1,6 @@
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Xunit;
-using Xunit.Abstractions;
namespace EntityFrameworkCore.Projectables.Generator.Tests;
@@ -63,8 +62,8 @@ public enum Status { Active, Inactive, Pending }
}";
// ── Initial compilation (two source files) ───────────────────────────
- var projectableTree = CSharpSyntaxTree.ParseText(projectableSource);
- var enumTreeV1 = CSharpSyntaxTree.ParseText(enumSourceV1);
+ var projectableTree = CSharpSyntaxTree.ParseText(projectableSource, cancellationToken: TestContext.Current.CancellationToken);
+ var enumTreeV1 = CSharpSyntaxTree.ParseText(enumSourceV1, cancellationToken: TestContext.Current.CancellationToken);
var references = GetDefaultReferences();
var compilation1 = CSharpCompilation.Create(
@@ -76,7 +75,7 @@ public enum Status { Active, Inactive, Pending }
var (driver, result1) = CreateAndRunGenerator(compilation1);
Assert.Single(result1.GeneratedTrees);
- var output1 = result1.GeneratedTrees[0].GetText().ToString();
+ var output1 = result1.GeneratedTrees[0].GetText(TestContext.Current.CancellationToken).ToString();
// Initial output must reference the two original enum members only.
Assert.Contains("Active", output1);
@@ -86,14 +85,14 @@ public enum Status { Active, Inactive, Pending }
// ── Updated compilation — only the enum file changes ─────────────────
// projectableTree is the SAME SyntaxTree reference (unchanged file).
// Roslyn's ReplaceSyntaxTree keeps all other trees as the same references.
- var enumTreeV2 = CSharpSyntaxTree.ParseText(enumSourceV2);
+ var enumTreeV2 = CSharpSyntaxTree.ParseText(enumSourceV2, cancellationToken: TestContext.Current.CancellationToken);
var compilation2 = compilation1.ReplaceSyntaxTree(enumTreeV1, enumTreeV2);
// Reuse the same driver to exercise the incremental caching path.
var (_, result2) = RunGeneratorWithDriver(driver, compilation2);
Assert.Single(result2.GeneratedTrees);
- var output2 = result2.GeneratedTrees[0].GetText().ToString();
+ var output2 = result2.GeneratedTrees[0].GetText(TestContext.Current.CancellationToken).ToString();
// The updated output must include the new "Pending" enum member.
Assert.Contains("Active", output2);
@@ -131,8 +130,8 @@ namespace Foo {
public enum Status { Active, Inactive }
}";
- var projectableTree = CSharpSyntaxTree.ParseText(projectableSource);
- var enumTreeV1 = CSharpSyntaxTree.ParseText(enumSourceV1);
+ var projectableTree = CSharpSyntaxTree.ParseText(projectableSource, cancellationToken: TestContext.Current.CancellationToken);
+ var enumTreeV1 = CSharpSyntaxTree.ParseText(enumSourceV1, cancellationToken: TestContext.Current.CancellationToken);
var references = GetDefaultReferences();
var compilation1 = CSharpCompilation.Create(
@@ -144,16 +143,16 @@ public enum Status { Active, Inactive }
var (driver, result1) = CreateAndRunGenerator(compilation1);
Assert.Single(result1.GeneratedTrees);
- var output1 = result1.GeneratedTrees[0].GetText().ToString();
+ var output1 = result1.GeneratedTrees[0].GetText(TestContext.Current.CancellationToken).ToString();
Assert.Contains("Pending", output1);
- var enumTreeV2 = CSharpSyntaxTree.ParseText(enumSourceV2);
+ var enumTreeV2 = CSharpSyntaxTree.ParseText(enumSourceV2, cancellationToken: TestContext.Current.CancellationToken);
var compilation2 = compilation1.ReplaceSyntaxTree(enumTreeV1, enumTreeV2);
var (_, result2) = RunGeneratorWithDriver(driver, compilation2);
Assert.Single(result2.GeneratedTrees);
- var output2 = result2.GeneratedTrees[0].GetText().ToString();
+ var output2 = result2.GeneratedTrees[0].GetText(TestContext.Current.CancellationToken).ToString();
// "Pending" must no longer appear after it is removed from the enum.
Assert.DoesNotContain("Pending", output2);
@@ -188,18 +187,18 @@ public class Entity {
var (driver, result1) = CreateAndRunGenerator(compilation1);
Assert.Single(result1.GeneratedTrees);
- var output1 = result1.GeneratedTrees[0].GetText().ToString();
+ var output1 = result1.GeneratedTrees[0].GetText(TestContext.Current.CancellationToken).ToString();
Assert.Contains("* 2", output1);
// Replace the projectable file.
var treeV1 = compilation1.SyntaxTrees.First();
- var treeV2 = CSharpSyntaxTree.ParseText(projectableSourceV2);
+ var treeV2 = CSharpSyntaxTree.ParseText(projectableSourceV2, cancellationToken: TestContext.Current.CancellationToken);
var compilation2 = compilation1.ReplaceSyntaxTree(treeV1, treeV2);
var (_, result2) = RunGeneratorWithDriver(driver, compilation2);
Assert.Single(result2.GeneratedTrees);
- var output2 = result2.GeneratedTrees[0].GetText().ToString();
+ var output2 = result2.GeneratedTrees[0].GetText(TestContext.Current.CancellationToken).ToString();
Assert.Contains("* 3", output2);
Assert.NotEqual(output1, output2);
@@ -229,8 +228,8 @@ public class Entity {
Assert.Single(result1.GeneratedTrees);
Assert.Single(result2.GeneratedTrees);
- var output1 = result1.GeneratedTrees[0].GetText().ToString();
- var output2 = result2.GeneratedTrees[0].GetText().ToString();
+ var output1 = result1.GeneratedTrees[0].GetText(TestContext.Current.CancellationToken).ToString();
+ var output2 = result2.GeneratedTrees[0].GetText(TestContext.Current.CancellationToken).ToString();
Assert.Equal(output1, output2);
}
diff --git a/tests/EntityFrameworkCore.Projectables.Generator.Tests/InterfaceTests.cs b/tests/EntityFrameworkCore.Projectables.Generator.Tests/InterfaceTests.cs
index 5e46b48..7c40f1a 100644
--- a/tests/EntityFrameworkCore.Projectables.Generator.Tests/InterfaceTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.Generator.Tests/InterfaceTests.cs
@@ -1,11 +1,9 @@
using System.Threading.Tasks;
using VerifyXunit;
using Xunit;
-using Xunit.Abstractions;
namespace EntityFrameworkCore.Projectables.Generator.Tests;
-[UsesVerify]
public class InterfaceTests : ProjectionExpressionGeneratorTestsBase
{
public InterfaceTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { }
diff --git a/tests/EntityFrameworkCore.Projectables.Generator.Tests/MethodTests.cs b/tests/EntityFrameworkCore.Projectables.Generator.Tests/MethodTests.cs
index ef3da1a..cc5e1ed 100644
--- a/tests/EntityFrameworkCore.Projectables.Generator.Tests/MethodTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.Generator.Tests/MethodTests.cs
@@ -3,11 +3,9 @@
using Microsoft.CodeAnalysis;
using VerifyXunit;
using Xunit;
-using Xunit.Abstractions;
namespace EntityFrameworkCore.Projectables.Generator.Tests;
-[UsesVerify]
public class MethodTests : ProjectionExpressionGeneratorTestsBase
{
public MethodTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { }
diff --git a/tests/EntityFrameworkCore.Projectables.Generator.Tests/NullableTests.cs b/tests/EntityFrameworkCore.Projectables.Generator.Tests/NullableTests.cs
index 07fcbeb..00b601d 100644
--- a/tests/EntityFrameworkCore.Projectables.Generator.Tests/NullableTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.Generator.Tests/NullableTests.cs
@@ -2,11 +2,9 @@
using Microsoft.CodeAnalysis;
using VerifyXunit;
using Xunit;
-using Xunit.Abstractions;
namespace EntityFrameworkCore.Projectables.Generator.Tests;
-[UsesVerify]
public class NullableTests : ProjectionExpressionGeneratorTestsBase
{
public NullableTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { }
diff --git a/tests/EntityFrameworkCore.Projectables.Generator.Tests/ProjectionExpressionGeneratorTestsBase.cs b/tests/EntityFrameworkCore.Projectables.Generator.Tests/ProjectionExpressionGeneratorTestsBase.cs
index 431c726..bf6bd43 100644
--- a/tests/EntityFrameworkCore.Projectables.Generator.Tests/ProjectionExpressionGeneratorTestsBase.cs
+++ b/tests/EntityFrameworkCore.Projectables.Generator.Tests/ProjectionExpressionGeneratorTestsBase.cs
@@ -5,7 +5,6 @@
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using Xunit;
-using Xunit.Abstractions;
namespace EntityFrameworkCore.Projectables.Generator.Tests;
@@ -218,7 +217,7 @@ private void LogGeneratorResult(TestGeneratorRunResult result, Compilation outpu
foreach (var newSyntaxTree in result.AllGeneratedTrees)
{
_testOutputHelper.WriteLine($"Produced syntax tree with path produced: {newSyntaxTree.FilePath}");
- _testOutputHelper.WriteLine(newSyntaxTree.GetText().ToString());
+ _testOutputHelper.WriteLine(newSyntaxTree.GetText(TestContext.Current.CancellationToken).ToString());
}
// Verify that the generated code compiles without errors
diff --git a/tests/EntityFrameworkCore.Projectables.Generator.Tests/PropertyTests.cs b/tests/EntityFrameworkCore.Projectables.Generator.Tests/PropertyTests.cs
index 64c86ad..6b218c2 100644
--- a/tests/EntityFrameworkCore.Projectables.Generator.Tests/PropertyTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.Generator.Tests/PropertyTests.cs
@@ -2,11 +2,9 @@
using Microsoft.CodeAnalysis;
using VerifyXunit;
using Xunit;
-using Xunit.Abstractions;
namespace EntityFrameworkCore.Projectables.Generator.Tests;
-[UsesVerify]
public class PropertyTests : ProjectionExpressionGeneratorTestsBase
{
public PropertyTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { }
diff --git a/tests/EntityFrameworkCore.Projectables.Generator.Tests/RegistryTests.cs b/tests/EntityFrameworkCore.Projectables.Generator.Tests/RegistryTests.cs
index 3a082b2..afac8ad 100644
--- a/tests/EntityFrameworkCore.Projectables.Generator.Tests/RegistryTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.Generator.Tests/RegistryTests.cs
@@ -1,8 +1,6 @@
-using Xunit.Abstractions;
namespace EntityFrameworkCore.Projectables.Generator.Tests;
-[UsesVerify]
public class RegistryTests : ProjectionExpressionGeneratorTestsBase
{
public RegistryTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { }
@@ -32,7 +30,7 @@ class C {
}");
var result = RunGenerator(compilation);
- return Verifier.Verify(result.RegistryTree!.GetText().ToString());
+ return Verifier.Verify(result.RegistryTree!.GetText(TestContext.Current.CancellationToken).ToString());
}
[Fact]
@@ -49,7 +47,7 @@ class C {
}");
var result = RunGenerator(compilation);
- return Verifier.Verify(result.RegistryTree!.GetText().ToString());
+ return Verifier.Verify(result.RegistryTree!.GetText(TestContext.Current.CancellationToken).ToString());
}
[Fact]
@@ -68,7 +66,7 @@ class C {
}");
var result = RunGenerator(compilation);
- return Verifier.Verify(result.RegistryTree!.GetText().ToString());
+ return Verifier.Verify(result.RegistryTree!.GetText(TestContext.Current.CancellationToken).ToString());
}
[Fact]
@@ -104,7 +102,7 @@ class C {
}");
var result = RunGenerator(compilation);
- return Verifier.Verify(result.RegistryTree!.GetText().ToString());
+ return Verifier.Verify(result.RegistryTree!.GetText(TestContext.Current.CancellationToken).ToString());
}
[Fact]
@@ -121,7 +119,7 @@ class C {
}");
var result = RunGenerator(compilation);
- return Verifier.Verify(result.RegistryTree!.GetText().ToString());
+ return Verifier.Verify(result.RegistryTree!.GetText(TestContext.Current.CancellationToken).ToString());
}
[Fact]
@@ -140,6 +138,6 @@ class C {
}");
var result = RunGenerator(compilation);
- return Verifier.Verify(result.RegistryTree!.GetText().ToString());
+ return Verifier.Verify(result.RegistryTree!.GetText(TestContext.Current.CancellationToken).ToString());
}
}
diff --git a/tests/EntityFrameworkCore.Projectables.Generator.Tests/SwitchPatternTests.cs b/tests/EntityFrameworkCore.Projectables.Generator.Tests/SwitchPatternTests.cs
index 3e809a8..898aa36 100644
--- a/tests/EntityFrameworkCore.Projectables.Generator.Tests/SwitchPatternTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.Generator.Tests/SwitchPatternTests.cs
@@ -1,11 +1,9 @@
using System.Threading.Tasks;
using VerifyXunit;
using Xunit;
-using Xunit.Abstractions;
namespace EntityFrameworkCore.Projectables.Generator.Tests;
-[UsesVerify]
public class SwitchPatternTests : ProjectionExpressionGeneratorTestsBase
{
public SwitchPatternTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { }
diff --git a/tests/EntityFrameworkCore.Projectables.Generator.Tests/UseMemberBodyTests.cs b/tests/EntityFrameworkCore.Projectables.Generator.Tests/UseMemberBodyTests.cs
index a907ef8..1885e65 100644
--- a/tests/EntityFrameworkCore.Projectables.Generator.Tests/UseMemberBodyTests.cs
+++ b/tests/EntityFrameworkCore.Projectables.Generator.Tests/UseMemberBodyTests.cs
@@ -4,7 +4,6 @@
using Microsoft.CodeAnalysis.CSharp;
using VerifyXunit;
using Xunit;
-using Xunit.Abstractions;
namespace EntityFrameworkCore.Projectables.Generator.Tests;
@@ -12,7 +11,6 @@ namespace EntityFrameworkCore.Projectables.Generator.Tests;
/// Tests for [Projectable(UseMemberBody = ...)] — both valid cases (code is generated correctly)
/// and invalid cases (EFP0010 / EFP0011 diagnostics are emitted).
///
-[UsesVerify]
public class UseMemberBodyTests : ProjectionExpressionGeneratorTestsBase
{
public UseMemberBodyTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { }
diff --git a/tests/EntityFrameworkCore.Projectables.Tests/EntityFrameworkCore.Projectables.Tests.csproj b/tests/EntityFrameworkCore.Projectables.Tests/EntityFrameworkCore.Projectables.Tests.csproj
index b7ae079..6ca4a76 100644
--- a/tests/EntityFrameworkCore.Projectables.Tests/EntityFrameworkCore.Projectables.Tests.csproj
+++ b/tests/EntityFrameworkCore.Projectables.Tests/EntityFrameworkCore.Projectables.Tests.csproj
@@ -2,6 +2,7 @@
false
+ exe
@@ -15,9 +16,9 @@
-
-
-
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive