diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index 01c1359..caa9982 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"jetbrains.resharper.globaltools": {
- "version": "2023.3.4",
+ "version": "2024.1.0",
"commands": [
"jb"
]
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index c12ff81..e10312d 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -35,6 +35,8 @@ jobs:
permissions:
contents: read
steps:
+ - name: Tune GitHub-hosted runner network
+ uses: smorimoto/tune-github-hosted-runner-network@v1
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
@@ -150,6 +152,8 @@ jobs:
permissions:
contents: read
steps:
+ - name: Tune GitHub-hosted runner network
+ uses: smorimoto/tune-github-hosted-runner-network@v1
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
@@ -166,7 +170,7 @@ jobs:
run: |
$inspectCodeOutputPath = Join-Path $env:RUNNER_TEMP 'jetbrains-inspectcode-results.xml'
Write-Output "INSPECT_CODE_OUTPUT_PATH=$inspectCodeOutputPath" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- dotnet jb inspectcode JsonApiDotNetCore.MongoDb.sln --build --dotnetcoresdk=$(dotnet --version) --output="$inspectCodeOutputPath" --profile=WarningSeverities.DotSettings --properties:Configuration=Release --properties:ContinuousIntegrationBuild=false --severity=WARNING --verbosity=WARN -dsl=GlobalAll -dsl=GlobalPerProduct -dsl=SolutionPersonal -dsl=ProjectPersonal
+ dotnet jb inspectcode JsonApiDotNetCore.MongoDb.sln --build --dotnetcoresdk=$(dotnet --version) --output="$inspectCodeOutputPath" --format="xml" --profile=WarningSeverities.DotSettings --properties:Configuration=Release --properties:ContinuousIntegrationBuild=false --properties:RunAnalyzers=false --severity=WARNING --verbosity=WARN -dsl=GlobalAll -dsl=GlobalPerProduct -dsl=SolutionPersonal -dsl=ProjectPersonal
- name: Verify outcome
shell: pwsh
run: |
@@ -203,6 +207,8 @@ jobs:
permissions:
contents: read
steps:
+ - name: Tune GitHub-hosted runner network
+ uses: smorimoto/tune-github-hosted-runner-network@v1
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
@@ -246,6 +252,8 @@ jobs:
packages: write
contents: write
steps:
+ - name: Tune GitHub-hosted runner network
+ uses: smorimoto/tune-github-hosted-runner-network@v1
- name: Download artifacts
uses: actions/download-artifact@v4
- name: Publish to GitHub Packages
diff --git a/JsonApiDotNetCore.MongoDb.sln.DotSettings b/JsonApiDotNetCore.MongoDb.sln.DotSettings
index d7699ea..2cd13da 100644
--- a/JsonApiDotNetCore.MongoDb.sln.DotSettings
+++ b/JsonApiDotNetCore.MongoDb.sln.DotSettings
@@ -54,10 +54,12 @@ JsonApiDotNetCore.MongoDb.ArgumentGuard.NotNull($EXPR$);
WARNING
WARNING
WARNING
+ DO_NOT_SHOW
WARNING
SUGGESTION
HINT
WARNING
+ SUGGESTION
DO_NOT_SHOW
HINT
SUGGESTION
@@ -95,6 +97,7 @@ JsonApiDotNetCore.MongoDb.ArgumentGuard.NotNull($EXPR$);
SUGGESTION
SUGGESTION
WARNING
+ True
SUGGESTION
<?xml version="1.0" encoding="utf-16"?><Profile name="JADNC Full Cleanup"><XMLReformatCode>True</XMLReformatCode><CSCodeStyleAttributes ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" RemoveRedundantParentheses="True" AddMissingParentheses="True" ArrangeBraces="True" ArrangeAttributes="True" ArrangeArgumentsStyle="True" ArrangeCodeBodyStyle="True" ArrangeVarStyle="True" ArrangeTrailingCommas="True" ArrangeObjectCreation="True" ArrangeDefaultValue="True" ArrangeNamespaces="True" ArrangeNullCheckingPattern="True" /><CssAlphabetizeProperties>True</CssAlphabetizeProperties><JsInsertSemicolon>True</JsInsertSemicolon><FormatAttributeQuoteDescriptor>True</FormatAttributeQuoteDescriptor><CorrectVariableKindsDescriptor>True</CorrectVariableKindsDescriptor><VariablesToInnerScopesDescriptor>True</VariablesToInnerScopesDescriptor><StringToTemplatesDescriptor>True</StringToTemplatesDescriptor><JsReformatCode>True</JsReformatCode><JsFormatDocComments>True</JsFormatDocComments><RemoveRedundantQualifiersTs>True</RemoveRedundantQualifiersTs><OptimizeImportsTs>True</OptimizeImportsTs><OptimizeReferenceCommentsTs>True</OptimizeReferenceCommentsTs><PublicModifierStyleTs>True</PublicModifierStyleTs><ExplicitAnyTs>True</ExplicitAnyTs><TypeAnnotationStyleTs>True</TypeAnnotationStyleTs><RelativePathStyleTs>True</RelativePathStyleTs><AsInsteadOfCastTs>True</AsInsteadOfCastTs><HtmlReformatCode>True</HtmlReformatCode><AspOptimizeRegisterDirectives>True</AspOptimizeRegisterDirectives><RemoveCodeRedundancies>True</RemoveCodeRedundancies><CSUseAutoProperty>True</CSUseAutoProperty><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSMakeAutoPropertyGetOnly>True</CSMakeAutoPropertyGetOnly><CSArrangeQualifiers>True</CSArrangeQualifiers><CSFixBuiltinTypeReferences>True</CSFixBuiltinTypeReferences><CssReformatCode>True</CssReformatCode><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings></CSOptimizeUsings><CSShortenReferences>True</CSShortenReferences><CSReformatCode>True</CSReformatCode><CSharpFormatDocComments>True</CSharpFormatDocComments><CSReorderTypeMembers>True</CSReorderTypeMembers><XAMLCollapseEmptyTags>False</XAMLCollapseEmptyTags><CSReformatInactiveBranches>True</CSReformatInactiveBranches></Profile>
JADNC Full Cleanup
@@ -154,6 +157,7 @@ JsonApiDotNetCore.MongoDb.ArgumentGuard.NotNull($EXPR$);
WRAP_IF_LONG
CHOP_ALWAYS
CHOP_ALWAYS
+ WRAP_IF_LONG
True
True
2
@@ -586,11 +590,14 @@ JsonApiDotNetCore.MongoDb.ArgumentGuard.NotNull($EXPR$);
False
<Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" />
<Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" />
+ <Policy><Descriptor Staticness="Instance" AccessRightKinds="Private" Description="Instance fields (private)"><ElementKinds><Kind Name="FIELD" /><Kind Name="READONLY_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /></Policy>
+ <Policy><Descriptor Staticness="Static" AccessRightKinds="Private" Description="Static fields (private)"><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /></Policy>
True
True
True
True
True
+ True
True
Replace argument null check using throw expression with Guard clause
True
diff --git a/inspectcode.ps1 b/inspectcode.ps1
index 13f0abb..25195fe 100644
--- a/inspectcode.ps1
+++ b/inspectcode.ps1
@@ -10,7 +10,7 @@ if ($LastExitCode -ne 0) {
$outputPath = [System.IO.Path]::Combine([System.IO.Path]::GetTempPath(), 'jetbrains-inspectcode-results.xml')
$resultPath = [System.IO.Path]::Combine([System.IO.Path]::GetTempPath(), 'jetbrains-inspectcode-results.html')
-dotnet jb inspectcode JsonApiDotNetCore.MongoDb.sln --dotnetcoresdk=$(dotnet --version) --build --output="$outputPath" --profile=WarningSeverities.DotSettings --properties:Configuration=Release --severity=WARNING --verbosity=WARN -dsl=GlobalAll -dsl=GlobalPerProduct -dsl=SolutionPersonal -dsl=ProjectPersonal
+dotnet jb inspectcode JsonApiDotNetCore.MongoDb.sln --dotnetcoresdk=$(dotnet --version) --build --output="$outputPath" --format="xml" --profile=WarningSeverities.DotSettings --properties:Configuration=Release --properties:RunAnalyzers=false --severity=WARNING --verbosity=WARN -dsl=GlobalAll -dsl=GlobalPerProduct -dsl=SolutionPersonal -dsl=ProjectPersonal
if ($LastExitCode -ne 0) {
throw "Code inspection failed with exit code $LastExitCode"
diff --git a/src/Examples/JsonApiDotNetCoreMongoDbExample/Controllers/OperationsController.cs b/src/Examples/JsonApiDotNetCoreMongoDbExample/Controllers/OperationsController.cs
index 8172459..82f602d 100644
--- a/src/Examples/JsonApiDotNetCoreMongoDbExample/Controllers/OperationsController.cs
+++ b/src/Examples/JsonApiDotNetCoreMongoDbExample/Controllers/OperationsController.cs
@@ -6,11 +6,6 @@
namespace JsonApiDotNetCoreMongoDbExample.Controllers;
-public sealed class OperationsController : JsonApiOperationsController
-{
- public OperationsController(IJsonApiOptions options, IResourceGraph resourceGraph, ILoggerFactory loggerFactory, IOperationsProcessor processor,
- IJsonApiRequest request, ITargetedFields targetedFields)
- : base(options, resourceGraph, loggerFactory, processor, request, targetedFields)
- {
- }
-}
+public sealed class OperationsController(
+ IJsonApiOptions options, IResourceGraph resourceGraph, ILoggerFactory loggerFactory, IOperationsProcessor processor, IJsonApiRequest request,
+ ITargetedFields targetedFields) : JsonApiOperationsController(options, resourceGraph, loggerFactory, processor, request, targetedFields);
diff --git a/src/Examples/JsonApiDotNetCoreMongoDbExample/Definitions/TodoItemDefinition.cs b/src/Examples/JsonApiDotNetCoreMongoDbExample/Definitions/TodoItemDefinition.cs
index 970a061..7910a8e 100644
--- a/src/Examples/JsonApiDotNetCoreMongoDbExample/Definitions/TodoItemDefinition.cs
+++ b/src/Examples/JsonApiDotNetCoreMongoDbExample/Definitions/TodoItemDefinition.cs
@@ -12,22 +12,19 @@
namespace JsonApiDotNetCoreMongoDbExample.Definitions;
[UsedImplicitly(ImplicitUseKindFlags.InstantiatedNoFixedConstructorSignature)]
-public sealed class TodoItemDefinition : JsonApiResourceDefinition
+public sealed class TodoItemDefinition(
+ IResourceGraph resourceGraph,
+#if NET6_0
+ ISystemClock systemClock
+#else
+ TimeProvider timeProvider
+#endif
+) : JsonApiResourceDefinition(resourceGraph)
{
- private readonly Func _getUtcNow;
-
#if NET6_0
- public TodoItemDefinition(IResourceGraph resourceGraph, ISystemClock systemClock)
- : base(resourceGraph)
- {
- _getUtcNow = () => systemClock.UtcNow;
- }
+ private readonly Func _getUtcNow = () => systemClock.UtcNow;
#else
- public TodoItemDefinition(IResourceGraph resourceGraph, TimeProvider timeProvider)
- : base(resourceGraph)
- {
- _getUtcNow = timeProvider.GetUtcNow;
- }
+ private readonly Func _getUtcNow = timeProvider.GetUtcNow;
#endif
public override SortExpression OnApplySort(SortExpression? existingSort)
diff --git a/src/JsonApiDotNetCore.MongoDb/Errors/AttributeComparisonInFilterNotSupportedException.cs b/src/JsonApiDotNetCore.MongoDb/Errors/AttributeComparisonInFilterNotSupportedException.cs
index 4b7508b..55c865a 100644
--- a/src/JsonApiDotNetCore.MongoDb/Errors/AttributeComparisonInFilterNotSupportedException.cs
+++ b/src/JsonApiDotNetCore.MongoDb/Errors/AttributeComparisonInFilterNotSupportedException.cs
@@ -10,13 +10,7 @@ namespace JsonApiDotNetCore.MongoDb.Errors;
/// https://jira.mongodb.org/browse/CSHARP-1592.
///
[PublicAPI]
-public sealed class AttributeComparisonInFilterNotSupportedException : JsonApiException
+public sealed class AttributeComparisonInFilterNotSupportedException() : JsonApiException(new ErrorObject(HttpStatusCode.BadRequest)
{
- public AttributeComparisonInFilterNotSupportedException()
- : base(new ErrorObject(HttpStatusCode.BadRequest)
- {
- Title = "Comparing attributes against each other is not supported when using MongoDB."
- })
- {
- }
-}
+ Title = "Comparing attributes against each other is not supported when using MongoDB."
+});
diff --git a/src/JsonApiDotNetCore.MongoDb/Errors/UnsupportedRelationshipException.cs b/src/JsonApiDotNetCore.MongoDb/Errors/UnsupportedRelationshipException.cs
index 2526e59..01852e5 100644
--- a/src/JsonApiDotNetCore.MongoDb/Errors/UnsupportedRelationshipException.cs
+++ b/src/JsonApiDotNetCore.MongoDb/Errors/UnsupportedRelationshipException.cs
@@ -9,13 +9,7 @@ namespace JsonApiDotNetCore.MongoDb.Errors;
/// The error that is thrown when the user attempts to fetch, create or update a relationship.
///
[PublicAPI]
-public sealed class UnsupportedRelationshipException : JsonApiException
+public sealed class UnsupportedRelationshipException() : JsonApiException(new ErrorObject(HttpStatusCode.BadRequest)
{
- public UnsupportedRelationshipException()
- : base(new ErrorObject(HttpStatusCode.BadRequest)
- {
- Title = "Relationships are not supported when using MongoDB."
- })
- {
- }
-}
+ Title = "Relationships are not supported when using MongoDB."
+});
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceTests.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceTests.cs
index 4a7e660..0172c7a 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceTests.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceTests.cs
@@ -8,16 +8,11 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.AtomicOperations.Creating;
[Collection("AtomicOperationsFixture")]
-public sealed class AtomicCreateResourceTests
+public sealed class AtomicCreateResourceTests(AtomicOperationsFixture fixture)
{
- private readonly IntegrationTestContext _testContext;
+ private readonly IntegrationTestContext _testContext = fixture.TestContext;
private readonly OperationsFakers _fakers = new();
- public AtomicCreateResourceTests(AtomicOperationsFixture fixture)
- {
- _testContext = fixture.TestContext;
- }
-
[Fact]
public async Task Can_create_resource()
{
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceWithToManyRelationshipTests.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceWithToManyRelationshipTests.cs
index ad022d4..7fa0e1c 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceWithToManyRelationshipTests.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceWithToManyRelationshipTests.cs
@@ -7,16 +7,11 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.AtomicOperations.Creating;
[Collection("AtomicOperationsFixture")]
-public sealed class AtomicCreateResourceWithToManyRelationshipTests
+public sealed class AtomicCreateResourceWithToManyRelationshipTests(AtomicOperationsFixture fixture)
{
- private readonly IntegrationTestContext _testContext;
+ private readonly IntegrationTestContext _testContext = fixture.TestContext;
private readonly OperationsFakers _fakers = new();
- public AtomicCreateResourceWithToManyRelationshipTests(AtomicOperationsFixture fixture)
- {
- _testContext = fixture.TestContext;
- }
-
[Fact]
public async Task Cannot_create_ToMany_relationship()
{
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceWithToOneRelationshipTests.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceWithToOneRelationshipTests.cs
index 209cdea..f33a634 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceWithToOneRelationshipTests.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceWithToOneRelationshipTests.cs
@@ -7,16 +7,11 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.AtomicOperations.Creating;
[Collection("AtomicOperationsFixture")]
-public sealed class AtomicCreateResourceWithToOneRelationshipTests
+public sealed class AtomicCreateResourceWithToOneRelationshipTests(AtomicOperationsFixture fixture)
{
- private readonly IntegrationTestContext _testContext;
+ private readonly IntegrationTestContext _testContext = fixture.TestContext;
private readonly OperationsFakers _fakers = new();
- public AtomicCreateResourceWithToOneRelationshipTests(AtomicOperationsFixture fixture)
- {
- _testContext = fixture.TestContext;
- }
-
[Fact]
public async Task Cannot_create_ToOne_relationship()
{
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Deleting/AtomicDeleteResourceTests.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Deleting/AtomicDeleteResourceTests.cs
index 14f62fb..9e401bd 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Deleting/AtomicDeleteResourceTests.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Deleting/AtomicDeleteResourceTests.cs
@@ -7,16 +7,11 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.AtomicOperations.Deleting;
[Collection("AtomicOperationsFixture")]
-public sealed class AtomicDeleteResourceTests
+public sealed class AtomicDeleteResourceTests(AtomicOperationsFixture fixture)
{
- private readonly IntegrationTestContext _testContext;
+ private readonly IntegrationTestContext _testContext = fixture.TestContext;
private readonly OperationsFakers _fakers = new();
- public AtomicDeleteResourceTests(AtomicOperationsFixture fixture)
- {
- _testContext = fixture.TestContext;
- }
-
[Fact]
public async Task Can_delete_existing_resource()
{
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/ImplicitlyChangingTextLanguageDefinition.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/ImplicitlyChangingTextLanguageDefinition.cs
index 946bc14..822cfd4 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/ImplicitlyChangingTextLanguageDefinition.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/ImplicitlyChangingTextLanguageDefinition.cs
@@ -10,17 +10,13 @@ namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.AtomicOperations;
/// Used to simulate side effects that occur in the database while saving, typically caused by database triggers.
///
[UsedImplicitly(ImplicitUseKindFlags.InstantiatedNoFixedConstructorSignature)]
-public abstract class ImplicitlyChangingTextLanguageDefinition : HitCountingResourceDefinition
+public abstract class ImplicitlyChangingTextLanguageDefinition(
+ IResourceGraph resourceGraph, ResourceDefinitionHitCounter hitCounter, IMongoDataAccess mongoDataAccess)
+ : HitCountingResourceDefinition(resourceGraph, hitCounter)
{
internal const string Suffix = " (changed)";
- private readonly IMongoDataAccess _mongoDataAccess;
-
- protected ImplicitlyChangingTextLanguageDefinition(IResourceGraph resourceGraph, ResourceDefinitionHitCounter hitCounter, IMongoDataAccess mongoDataAccess)
- : base(resourceGraph, hitCounter)
- {
- _mongoDataAccess = mongoDataAccess;
- }
+ private readonly IMongoDataAccess _mongoDataAccess = mongoDataAccess;
public override async Task OnWriteSucceededAsync(TextLanguage resource, WriteOperationKind writeOperation, CancellationToken cancellationToken)
{
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/LocalIds/AtomicLocalIdTests.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/LocalIds/AtomicLocalIdTests.cs
index b9a2080..54680ba 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/LocalIds/AtomicLocalIdTests.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/LocalIds/AtomicLocalIdTests.cs
@@ -7,16 +7,11 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.AtomicOperations.LocalIds;
[Collection("AtomicOperationsFixture")]
-public sealed class AtomicLocalIdTests
+public sealed class AtomicLocalIdTests(AtomicOperationsFixture fixture)
{
- private readonly IntegrationTestContext _testContext;
+ private readonly IntegrationTestContext _testContext = fixture.TestContext;
private readonly OperationsFakers _fakers = new();
- public AtomicLocalIdTests(AtomicOperationsFixture fixture)
- {
- _testContext = fixture.TestContext;
- }
-
[Fact]
public async Task Can_update_resource_using_local_ID()
{
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Meta/MusicTrackMetaDefinition.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Meta/MusicTrackMetaDefinition.cs
index 479898d..93cf7d2 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Meta/MusicTrackMetaDefinition.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Meta/MusicTrackMetaDefinition.cs
@@ -4,15 +4,11 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.AtomicOperations.Meta;
[UsedImplicitly(ImplicitUseKindFlags.InstantiatedNoFixedConstructorSignature)]
-public sealed class MusicTrackMetaDefinition : HitCountingResourceDefinition
+public sealed class MusicTrackMetaDefinition(IResourceGraph resourceGraph, ResourceDefinitionHitCounter hitCounter)
+ : HitCountingResourceDefinition(resourceGraph, hitCounter)
{
protected override ResourceDefinitionExtensibilityPoints ExtensibilityPointsToTrack => ResourceDefinitionExtensibilityPoints.GetMeta;
- public MusicTrackMetaDefinition(IResourceGraph resourceGraph, ResourceDefinitionHitCounter hitCounter)
- : base(resourceGraph, hitCounter)
- {
- }
-
public override IDictionary GetMeta(MusicTrack resource)
{
base.GetMeta(resource);
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Meta/TextLanguageMetaDefinition.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Meta/TextLanguageMetaDefinition.cs
index bf1bd66..2d440be 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Meta/TextLanguageMetaDefinition.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Meta/TextLanguageMetaDefinition.cs
@@ -5,17 +5,13 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.AtomicOperations.Meta;
[UsedImplicitly(ImplicitUseKindFlags.InstantiatedNoFixedConstructorSignature)]
-public sealed class TextLanguageMetaDefinition : ImplicitlyChangingTextLanguageDefinition
+public sealed class TextLanguageMetaDefinition(IResourceGraph resourceGraph, ResourceDefinitionHitCounter hitCounter, IMongoDataAccess mongoDataAccess)
+ : ImplicitlyChangingTextLanguageDefinition(resourceGraph, hitCounter, mongoDataAccess)
{
internal const string NoticeText = "See https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes for ISO 639-1 language codes.";
protected override ResourceDefinitionExtensibilityPoints ExtensibilityPointsToTrack => ResourceDefinitionExtensibilityPoints.GetMeta;
- public TextLanguageMetaDefinition(IResourceGraph resourceGraph, ResourceDefinitionHitCounter hitCounter, IMongoDataAccess mongoDataAccess)
- : base(resourceGraph, hitCounter, mongoDataAccess)
- {
- }
-
public override IDictionary GetMeta(TextLanguage resource)
{
base.GetMeta(resource);
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Mixed/MaximumOperationsPerRequestTests.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Mixed/MaximumOperationsPerRequestTests.cs
index b3f8d35..ba4bf6a 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Mixed/MaximumOperationsPerRequestTests.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Mixed/MaximumOperationsPerRequestTests.cs
@@ -8,15 +8,9 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.AtomicOperations.Mixed;
[Collection("AtomicOperationsFixture")]
-public sealed class MaximumOperationsPerRequestTests : BaseForAtomicOperationsTestsThatChangeOptions
+public sealed class MaximumOperationsPerRequestTests(AtomicOperationsFixture fixture) : BaseForAtomicOperationsTestsThatChangeOptions(fixture)
{
- private readonly IntegrationTestContext _testContext;
-
- public MaximumOperationsPerRequestTests(AtomicOperationsFixture fixture)
- : base(fixture)
- {
- _testContext = fixture.TestContext;
- }
+ private readonly IntegrationTestContext _testContext = fixture.TestContext;
[Fact]
public async Task Can_process_high_number_of_operations_when_unconstrained()
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/OperationsController.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/OperationsController.cs
index f82e32d..c7ce7f9 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/OperationsController.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/OperationsController.cs
@@ -7,11 +7,6 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.AtomicOperations;
-public sealed class OperationsController : JsonApiOperationsController
-{
- public OperationsController(IJsonApiOptions options, IResourceGraph resourceGraph, ILoggerFactory loggerFactory, IOperationsProcessor processor,
- IJsonApiRequest request, ITargetedFields targetedFields)
- : base(options, resourceGraph, loggerFactory, processor, request, targetedFields)
- {
- }
-}
+public sealed class OperationsController(
+ IJsonApiOptions options, IResourceGraph resourceGraph, ILoggerFactory loggerFactory, IOperationsProcessor processor, IJsonApiRequest request,
+ ITargetedFields targetedFields) : JsonApiOperationsController(options, resourceGraph, loggerFactory, processor, request, targetedFields);
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/OperationsDbContext.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/OperationsDbContext.cs
index 6b6f6f0..aa75333 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/OperationsDbContext.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/OperationsDbContext.cs
@@ -5,7 +5,7 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.AtomicOperations;
[UsedImplicitly(ImplicitUseTargetFlags.Members)]
-public sealed class OperationsDbContext : MongoDbContextShim
+public sealed class OperationsDbContext(IMongoDatabase database) : MongoDbContextShim(database)
{
public MongoDbSetShim Playlists => Set();
public MongoDbSetShim MusicTracks => Set();
@@ -13,9 +13,4 @@ public sealed class OperationsDbContext : MongoDbContextShim
public MongoDbSetShim TextLanguages => Set();
public MongoDbSetShim Performers => Set();
public MongoDbSetShim RecordCompanies => Set();
-
- public OperationsDbContext(IMongoDatabase database)
- : base(database)
- {
- }
}
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Transactions/MusicTrackRepository.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Transactions/MusicTrackRepository.cs
index 9595112..bd73d6c 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Transactions/MusicTrackRepository.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Transactions/MusicTrackRepository.cs
@@ -8,14 +8,11 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.AtomicOperations.Transactions;
[UsedImplicitly(ImplicitUseKindFlags.InstantiatedNoFixedConstructorSignature)]
-public sealed class MusicTrackRepository : MongoRepository
+public sealed class MusicTrackRepository(
+ IMongoDataAccess mongoDataAccess, ITargetedFields targetedFields, IResourceGraph resourceGraph, IResourceFactory resourceFactory,
+ IEnumerable constraintProviders, IResourceDefinitionAccessor resourceDefinitionAccessor, IQueryableBuilder queryableBuilder)
+ : MongoRepository(mongoDataAccess, targetedFields, resourceGraph, resourceFactory, constraintProviders, resourceDefinitionAccessor,
+ queryableBuilder)
{
public override string? TransactionId => null;
-
- public MusicTrackRepository(IMongoDataAccess mongoDataAccess, ITargetedFields targetedFields, IResourceGraph resourceGraph,
- IResourceFactory resourceFactory, IEnumerable constraintProviders, IResourceDefinitionAccessor resourceDefinitionAccessor,
- IQueryableBuilder queryableBuilder)
- : base(mongoDataAccess, targetedFields, resourceGraph, resourceFactory, constraintProviders, resourceDefinitionAccessor, queryableBuilder)
- {
- }
}
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicAddToToManyRelationshipTests.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicAddToToManyRelationshipTests.cs
index d15f9d0..b81b3f4 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicAddToToManyRelationshipTests.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicAddToToManyRelationshipTests.cs
@@ -7,16 +7,11 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.AtomicOperations.Updating.Relationships;
[Collection("AtomicOperationsFixture")]
-public sealed class AtomicAddToToManyRelationshipTests
+public sealed class AtomicAddToToManyRelationshipTests(AtomicOperationsFixture fixture)
{
- private readonly IntegrationTestContext _testContext;
+ private readonly IntegrationTestContext _testContext = fixture.TestContext;
private readonly OperationsFakers _fakers = new();
- public AtomicAddToToManyRelationshipTests(AtomicOperationsFixture fixture)
- {
- _testContext = fixture.TestContext;
- }
-
[Fact]
public async Task Cannot_add_to_OneToMany_relationship()
{
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicRemoveFromToManyRelationshipTests.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicRemoveFromToManyRelationshipTests.cs
index 857f7c5..71bfc3d 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicRemoveFromToManyRelationshipTests.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicRemoveFromToManyRelationshipTests.cs
@@ -7,16 +7,11 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.AtomicOperations.Updating.Relationships;
[Collection("AtomicOperationsFixture")]
-public sealed class AtomicRemoveFromToManyRelationshipTests
+public sealed class AtomicRemoveFromToManyRelationshipTests(AtomicOperationsFixture fixture)
{
- private readonly IntegrationTestContext _testContext;
+ private readonly IntegrationTestContext _testContext = fixture.TestContext;
private readonly OperationsFakers _fakers = new();
- public AtomicRemoveFromToManyRelationshipTests(AtomicOperationsFixture fixture)
- {
- _testContext = fixture.TestContext;
- }
-
[Fact]
public async Task Cannot_remove_from_OneToMany_relationship()
{
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicReplaceToManyRelationshipTests.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicReplaceToManyRelationshipTests.cs
index b716339..04c3bc3 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicReplaceToManyRelationshipTests.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicReplaceToManyRelationshipTests.cs
@@ -7,16 +7,11 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.AtomicOperations.Updating.Relationships;
[Collection("AtomicOperationsFixture")]
-public sealed class AtomicReplaceToManyRelationshipTests
+public sealed class AtomicReplaceToManyRelationshipTests(AtomicOperationsFixture fixture)
{
- private readonly IntegrationTestContext _testContext;
+ private readonly IntegrationTestContext _testContext = fixture.TestContext;
private readonly OperationsFakers _fakers = new();
- public AtomicReplaceToManyRelationshipTests(AtomicOperationsFixture fixture)
- {
- _testContext = fixture.TestContext;
- }
-
[Fact]
public async Task Cannot_replace_OneToMany_relationship()
{
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicUpdateToOneRelationshipTests.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicUpdateToOneRelationshipTests.cs
index dccab27..bcbdcca 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicUpdateToOneRelationshipTests.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicUpdateToOneRelationshipTests.cs
@@ -7,16 +7,11 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.AtomicOperations.Updating.Relationships;
[Collection("AtomicOperationsFixture")]
-public sealed class AtomicUpdateToOneRelationshipTests
+public sealed class AtomicUpdateToOneRelationshipTests(AtomicOperationsFixture fixture)
{
- private readonly IntegrationTestContext _testContext;
+ private readonly IntegrationTestContext _testContext = fixture.TestContext;
private readonly OperationsFakers _fakers = new();
- public AtomicUpdateToOneRelationshipTests(AtomicOperationsFixture fixture)
- {
- _testContext = fixture.TestContext;
- }
-
[Fact]
public async Task Cannot_create_ManyToOne_relationship()
{
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Resources/AtomicReplaceToManyRelationshipTests.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Resources/AtomicReplaceToManyRelationshipTests.cs
index 833bdd3..c65167b 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Resources/AtomicReplaceToManyRelationshipTests.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Resources/AtomicReplaceToManyRelationshipTests.cs
@@ -7,16 +7,11 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.AtomicOperations.Updating.Resources;
[Collection("AtomicOperationsFixture")]
-public sealed class AtomicReplaceToManyRelationshipTests
+public sealed class AtomicReplaceToManyRelationshipTests(AtomicOperationsFixture fixture)
{
- private readonly IntegrationTestContext _testContext;
+ private readonly IntegrationTestContext _testContext = fixture.TestContext;
private readonly OperationsFakers _fakers = new();
- public AtomicReplaceToManyRelationshipTests(AtomicOperationsFixture fixture)
- {
- _testContext = fixture.TestContext;
- }
-
[Fact]
public async Task Cannot_replace_ToMany_relationship()
{
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Resources/AtomicUpdateResourceTests.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Resources/AtomicUpdateResourceTests.cs
index 7ae1426..a123409 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Resources/AtomicUpdateResourceTests.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Resources/AtomicUpdateResourceTests.cs
@@ -7,16 +7,11 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.AtomicOperations.Updating.Resources;
[Collection("AtomicOperationsFixture")]
-public sealed class AtomicUpdateResourceTests
+public sealed class AtomicUpdateResourceTests(AtomicOperationsFixture fixture)
{
- private readonly IntegrationTestContext _testContext;
+ private readonly IntegrationTestContext _testContext = fixture.TestContext;
private readonly OperationsFakers _fakers = new();
- public AtomicUpdateResourceTests(AtomicOperationsFixture fixture)
- {
- _testContext = fixture.TestContext;
- }
-
[Fact]
public async Task Can_update_resources()
{
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Resources/AtomicUpdateToOneRelationshipTests.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Resources/AtomicUpdateToOneRelationshipTests.cs
index df60664..014b396 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Resources/AtomicUpdateToOneRelationshipTests.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/AtomicOperations/Updating/Resources/AtomicUpdateToOneRelationshipTests.cs
@@ -7,16 +7,11 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.AtomicOperations.Updating.Resources;
[Collection("AtomicOperationsFixture")]
-public sealed class AtomicUpdateToOneRelationshipTests
+public sealed class AtomicUpdateToOneRelationshipTests(AtomicOperationsFixture fixture)
{
- private readonly IntegrationTestContext _testContext;
+ private readonly IntegrationTestContext _testContext = fixture.TestContext;
private readonly OperationsFakers _fakers = new();
- public AtomicUpdateToOneRelationshipTests(AtomicOperationsFixture fixture)
- {
- _testContext = fixture.TestContext;
- }
-
[Fact]
public async Task Cannot_create_ToOne_relationship()
{
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/HitCountingResourceDefinition.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/HitCountingResourceDefinition.cs
index fd93e5e..3ee880d 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/HitCountingResourceDefinition.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/HitCountingResourceDefinition.cs
@@ -11,19 +11,14 @@ namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests;
/// Tracks invocations on callback methods. This is used solely in our tests, so we can assert which
/// calls were made, and in which order.
///
-public abstract class HitCountingResourceDefinition : JsonApiResourceDefinition
+public abstract class HitCountingResourceDefinition(IResourceGraph resourceGraph, ResourceDefinitionHitCounter hitCounter)
+ : JsonApiResourceDefinition(resourceGraph)
where TResource : class, IIdentifiable
{
- private readonly ResourceDefinitionHitCounter _hitCounter;
+ private readonly ResourceDefinitionHitCounter _hitCounter = hitCounter;
protected virtual ResourceDefinitionExtensibilityPoints ExtensibilityPointsToTrack => ResourceDefinitionExtensibilityPoints.All;
- protected HitCountingResourceDefinition(IResourceGraph resourceGraph, ResourceDefinitionHitCounter hitCounter)
- : base(resourceGraph)
- {
- _hitCounter = hitCounter;
- }
-
public override IImmutableSet OnApplyIncludes(IImmutableSet existingIncludes)
{
if (ExtensibilityPointsToTrack.HasFlag(ResourceDefinitionExtensibilityPoints.OnApplyIncludes))
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/Meta/MetaDbContext.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/Meta/MetaDbContext.cs
index fbd2ff5..8aa82f8 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/Meta/MetaDbContext.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/Meta/MetaDbContext.cs
@@ -5,12 +5,7 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.Meta;
[UsedImplicitly(ImplicitUseTargetFlags.Members)]
-public sealed class MetaDbContext : MongoDbContextShim
+public sealed class MetaDbContext(IMongoDatabase database) : MongoDbContextShim(database)
{
public MongoDbSetShim SupportTickets => Set();
-
- public MetaDbContext(IMongoDatabase database)
- : base(database)
- {
- }
}
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/Meta/SupportTicketDefinition.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/Meta/SupportTicketDefinition.cs
index 2cbff91..704c6c8 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/Meta/SupportTicketDefinition.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/Meta/SupportTicketDefinition.cs
@@ -4,15 +4,11 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.Meta;
[UsedImplicitly(ImplicitUseKindFlags.InstantiatedNoFixedConstructorSignature)]
-public sealed class SupportTicketDefinition : HitCountingResourceDefinition
+public sealed class SupportTicketDefinition(IResourceGraph resourceGraph, ResourceDefinitionHitCounter hitCounter)
+ : HitCountingResourceDefinition(resourceGraph, hitCounter)
{
protected override ResourceDefinitionExtensibilityPoints ExtensibilityPointsToTrack => ResourceDefinitionExtensibilityPoints.GetMeta;
- public SupportTicketDefinition(IResourceGraph resourceGraph, ResourceDefinitionHitCounter hitCounter)
- : base(resourceGraph, hitCounter)
- {
- }
-
public override IDictionary? GetMeta(SupportTicket resource)
{
base.GetMeta(resource);
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/QueryStrings/Filtering/FilterDbContext.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/QueryStrings/Filtering/FilterDbContext.cs
index 356e537..58277b3 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/QueryStrings/Filtering/FilterDbContext.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/QueryStrings/Filtering/FilterDbContext.cs
@@ -5,12 +5,7 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.QueryStrings.Filtering;
[UsedImplicitly(ImplicitUseTargetFlags.Members)]
-public sealed class FilterDbContext : MongoDbContextShim
+public sealed class FilterDbContext(IMongoDatabase database) : MongoDbContextShim(database)
{
public MongoDbSetShim FilterableResources => Set();
-
- public FilterDbContext(IMongoDatabase database)
- : base(database)
- {
- }
}
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/QueryStrings/QueryStringDbContext.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/QueryStrings/QueryStringDbContext.cs
index 1a3489e..a1e48b6 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/QueryStrings/QueryStringDbContext.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/QueryStrings/QueryStringDbContext.cs
@@ -5,14 +5,9 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.QueryStrings;
[UsedImplicitly(ImplicitUseTargetFlags.Members)]
-public sealed class QueryStringDbContext : MongoDbContextShim
+public sealed class QueryStringDbContext(IMongoDatabase database) : MongoDbContextShim(database)
{
public MongoDbSetShim Blogs => Set();
public MongoDbSetShim Posts => Set();
public MongoDbSetShim Accounts => Set();
-
- public QueryStringDbContext(IMongoDatabase database)
- : base(database)
- {
- }
}
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/QueryStrings/SparseFieldSets/ResultCapturingRepository.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/QueryStrings/SparseFieldSets/ResultCapturingRepository.cs
index b88cd2e..f00897c 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/QueryStrings/SparseFieldSets/ResultCapturingRepository.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/QueryStrings/SparseFieldSets/ResultCapturingRepository.cs
@@ -11,18 +11,14 @@ namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.QueryStrings.SparseFiel
/// Enables sparse fieldset tests to verify which fields were (not) retrieved from the database.
///
[UsedImplicitly(ImplicitUseKindFlags.InstantiatedNoFixedConstructorSignature)]
-public sealed class ResultCapturingRepository : MongoRepository
+public sealed class ResultCapturingRepository(
+ IMongoDataAccess mongoDataAccess, ITargetedFields targetedFields, IResourceGraph resourceGraph, IResourceFactory resourceFactory,
+ IEnumerable constraintProviders, IResourceDefinitionAccessor resourceDefinitionAccessor, IQueryableBuilder queryableBuilder,
+ ResourceCaptureStore captureStore) : MongoRepository(mongoDataAccess, targetedFields, resourceGraph, resourceFactory, constraintProviders,
+ resourceDefinitionAccessor, queryableBuilder)
where TResource : class, IIdentifiable
{
- private readonly ResourceCaptureStore _captureStore;
-
- public ResultCapturingRepository(IMongoDataAccess mongoDataAccess, ITargetedFields targetedFields, IResourceGraph resourceGraph,
- IResourceFactory resourceFactory, IEnumerable constraintProviders, IResourceDefinitionAccessor resourceDefinitionAccessor,
- IQueryableBuilder queryableBuilder, ResourceCaptureStore captureStore)
- : base(mongoDataAccess, targetedFields, resourceGraph, resourceFactory, constraintProviders, resourceDefinitionAccessor, queryableBuilder)
- {
- _captureStore = captureStore;
- }
+ private readonly ResourceCaptureStore _captureStore = captureStore;
public override async Task> GetAsync(QueryLayer queryLayer, CancellationToken cancellationToken)
{
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ReadWrite/ImplicitlyChangingWorkItemDefinition.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ReadWrite/ImplicitlyChangingWorkItemDefinition.cs
index 61f68e1..38b54cf 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ReadWrite/ImplicitlyChangingWorkItemDefinition.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ReadWrite/ImplicitlyChangingWorkItemDefinition.cs
@@ -10,17 +10,12 @@ namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.ReadWrite;
/// Used to simulate side effects that occur in the database while saving, typically caused by database triggers.
///
[UsedImplicitly(ImplicitUseKindFlags.InstantiatedNoFixedConstructorSignature)]
-public sealed class ImplicitlyChangingWorkItemDefinition : JsonApiResourceDefinition
+public sealed class ImplicitlyChangingWorkItemDefinition(IResourceGraph resourceGraph, ReadWriteDbContext dbContext)
+ : JsonApiResourceDefinition(resourceGraph)
{
internal const string Suffix = " (changed)";
- private readonly ReadWriteDbContext _dbContext;
-
- public ImplicitlyChangingWorkItemDefinition(IResourceGraph resourceGraph, ReadWriteDbContext dbContext)
- : base(resourceGraph)
- {
- _dbContext = dbContext;
- }
+ private readonly ReadWriteDbContext _dbContext = dbContext;
public override Task OnWriteSucceededAsync(WorkItem resource, WriteOperationKind writeOperation, CancellationToken cancellationToken)
{
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ReadWrite/ImplicitlyChangingWorkItemGroupDefinition.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ReadWrite/ImplicitlyChangingWorkItemGroupDefinition.cs
index 3d4e846..ef8c375 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ReadWrite/ImplicitlyChangingWorkItemGroupDefinition.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ReadWrite/ImplicitlyChangingWorkItemGroupDefinition.cs
@@ -10,17 +10,12 @@ namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.ReadWrite;
/// Used to simulate side effects that occur in the database while saving, typically caused by database triggers.
///
[UsedImplicitly(ImplicitUseKindFlags.InstantiatedNoFixedConstructorSignature)]
-public sealed class ImplicitlyChangingWorkItemGroupDefinition : JsonApiResourceDefinition
+public sealed class ImplicitlyChangingWorkItemGroupDefinition(IResourceGraph resourceGraph, ReadWriteDbContext dbContext)
+ : JsonApiResourceDefinition(resourceGraph)
{
internal const string Suffix = " (changed)";
- private readonly ReadWriteDbContext _dbContext;
-
- public ImplicitlyChangingWorkItemGroupDefinition(IResourceGraph resourceGraph, ReadWriteDbContext dbContext)
- : base(resourceGraph)
- {
- _dbContext = dbContext;
- }
+ private readonly ReadWriteDbContext _dbContext = dbContext;
public override Task OnWriteSucceededAsync(WorkItemGroup resource, WriteOperationKind writeOperation, CancellationToken cancellationToken)
{
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ReadWrite/ReadWriteDbContext.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ReadWrite/ReadWriteDbContext.cs
index f3cfd72..32a0dd9 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ReadWrite/ReadWriteDbContext.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ReadWrite/ReadWriteDbContext.cs
@@ -5,16 +5,11 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.ReadWrite;
[UsedImplicitly(ImplicitUseTargetFlags.Members)]
-public sealed class ReadWriteDbContext : MongoDbContextShim
+public sealed class ReadWriteDbContext(IMongoDatabase database) : MongoDbContextShim(database)
{
public MongoDbSetShim WorkItems => Set();
public MongoDbSetShim WorkTags => Set();
public MongoDbSetShim Groups => Set();
public MongoDbSetShim RgbColors => Set();
public MongoDbSetShim UserAccounts => Set();
-
- public ReadWriteDbContext(IMongoDatabase database)
- : base(database)
- {
- }
}
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ResourceDefinitions/Reading/MoonDefinition.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ResourceDefinitions/Reading/MoonDefinition.cs
index 55340ea..e4e8f7a 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ResourceDefinitions/Reading/MoonDefinition.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ResourceDefinitions/Reading/MoonDefinition.cs
@@ -6,17 +6,11 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.ResourceDefinitions.Reading;
[UsedImplicitly(ImplicitUseKindFlags.InstantiatedNoFixedConstructorSignature)]
-public sealed class MoonDefinition : HitCountingResourceDefinition
+public sealed class MoonDefinition(IResourceGraph resourceGraph, ResourceDefinitionHitCounter hitCounter)
+ : HitCountingResourceDefinition(resourceGraph, hitCounter)
{
protected override ResourceDefinitionExtensibilityPoints ExtensibilityPointsToTrack => ResourceDefinitionExtensibilityPoints.Reading;
- public MoonDefinition(IResourceGraph resourceGraph, ResourceDefinitionHitCounter hitCounter)
- : base(resourceGraph, hitCounter)
- {
- // This constructor will be resolved from the container, which means
- // you can take on any dependency that is also defined in the container.
- }
-
public override QueryStringParameterHandlers OnRegisterQueryableHandlersForQueryStringParameters()
{
base.OnRegisterQueryableHandlersForQueryStringParameters();
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ResourceDefinitions/Reading/PlanetDefinition.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ResourceDefinitions/Reading/PlanetDefinition.cs
index 567fa04..c2122d6 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ResourceDefinitions/Reading/PlanetDefinition.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ResourceDefinitions/Reading/PlanetDefinition.cs
@@ -6,21 +6,13 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.ResourceDefinitions.Reading;
[UsedImplicitly(ImplicitUseKindFlags.InstantiatedNoFixedConstructorSignature)]
-public sealed class PlanetDefinition : HitCountingResourceDefinition
+public sealed class PlanetDefinition(IResourceGraph resourceGraph, IClientSettingsProvider clientSettingsProvider, ResourceDefinitionHitCounter hitCounter)
+ : HitCountingResourceDefinition(resourceGraph, hitCounter)
{
- private readonly IClientSettingsProvider _clientSettingsProvider;
+ private readonly IClientSettingsProvider _clientSettingsProvider = clientSettingsProvider;
protected override ResourceDefinitionExtensibilityPoints ExtensibilityPointsToTrack => ResourceDefinitionExtensibilityPoints.Reading;
- public PlanetDefinition(IResourceGraph resourceGraph, IClientSettingsProvider clientSettingsProvider, ResourceDefinitionHitCounter hitCounter)
- : base(resourceGraph, hitCounter)
- {
- // This constructor will be resolved from the container, which means
- // you can take on any dependency that is also defined in the container.
-
- _clientSettingsProvider = clientSettingsProvider;
- }
-
public override FilterExpression? OnApplyFilter(FilterExpression? existingFilter)
{
base.OnApplyFilter(existingFilter);
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ResourceDefinitions/Reading/StarDefinition.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ResourceDefinitions/Reading/StarDefinition.cs
index 46632bd..5a55410 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ResourceDefinitions/Reading/StarDefinition.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ResourceDefinitions/Reading/StarDefinition.cs
@@ -6,17 +6,11 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.ResourceDefinitions.Reading;
[UsedImplicitly(ImplicitUseKindFlags.InstantiatedNoFixedConstructorSignature)]
-public sealed class StarDefinition : HitCountingResourceDefinition
+public sealed class StarDefinition(IResourceGraph resourceGraph, ResourceDefinitionHitCounter hitCounter)
+ : HitCountingResourceDefinition(resourceGraph, hitCounter)
{
protected override ResourceDefinitionExtensibilityPoints ExtensibilityPointsToTrack => ResourceDefinitionExtensibilityPoints.Reading;
- public StarDefinition(IResourceGraph resourceGraph, ResourceDefinitionHitCounter hitCounter)
- : base(resourceGraph, hitCounter)
- {
- // This constructor will be resolved from the container, which means
- // you can take on any dependency that is also defined in the container.
- }
-
public override SortExpression OnApplySort(SortExpression? existingSort)
{
base.OnApplySort(existingSort);
diff --git a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ResourceDefinitions/Reading/UniverseDbContext.cs b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ResourceDefinitions/Reading/UniverseDbContext.cs
index f8bd720..901ce69 100644
--- a/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ResourceDefinitions/Reading/UniverseDbContext.cs
+++ b/test/JsonApiDotNetCoreMongoDbTests/IntegrationTests/ResourceDefinitions/Reading/UniverseDbContext.cs
@@ -5,14 +5,9 @@
namespace JsonApiDotNetCoreMongoDbTests.IntegrationTests.ResourceDefinitions.Reading;
[UsedImplicitly(ImplicitUseTargetFlags.Members)]
-public sealed class UniverseDbContext : MongoDbContextShim
+public sealed class UniverseDbContext(IMongoDatabase database) : MongoDbContextShim(database)
{
public MongoDbSetShim Stars => Set();
public MongoDbSetShim Planets => Set();
public MongoDbSetShim Moons => Set();
-
- public UniverseDbContext(IMongoDatabase database)
- : base(database)
- {
- }
}
diff --git a/test/TestBuildingBlocks/MongoDbContextShim.cs b/test/TestBuildingBlocks/MongoDbContextShim.cs
index 0521914..abc8942 100644
--- a/test/TestBuildingBlocks/MongoDbContextShim.cs
+++ b/test/TestBuildingBlocks/MongoDbContextShim.cs
@@ -7,16 +7,11 @@ namespace TestBuildingBlocks;
/// Provides an Entity Framework Core DbContext-like abstraction that translates to MongoDB calls. This makes it easier to keep tests in sync with the
/// main repository.
///
-public abstract class MongoDbContextShim
+public abstract class MongoDbContextShim(IMongoDatabase database)
{
- private readonly IMongoDatabase _database;
+ private readonly IMongoDatabase _database = database;
private readonly List _dbSetShims = [];
- protected MongoDbContextShim(IMongoDatabase database)
- {
- _database = database;
- }
-
protected MongoDbSetShim Set()
where TEntity : IMongoIdentifiable
{
diff --git a/test/TestBuildingBlocks/MongoRunnerProvider.cs b/test/TestBuildingBlocks/MongoRunnerProvider.cs
index c22b8d5..f2dc54a 100644
--- a/test/TestBuildingBlocks/MongoRunnerProvider.cs
+++ b/test/TestBuildingBlocks/MongoRunnerProvider.cs
@@ -54,19 +54,13 @@ private void Detach()
}
}
- private sealed class MongoRunnerWrapper : IMongoRunner
+ private sealed class MongoRunnerWrapper(MongoRunnerProvider owner, IMongoRunner underlyingMongoRunner) : IMongoRunner
{
- private readonly MongoRunnerProvider _owner;
- private IMongoRunner? _underlyingMongoRunner;
+ private readonly MongoRunnerProvider _owner = owner;
+ private IMongoRunner? _underlyingMongoRunner = underlyingMongoRunner;
public string ConnectionString => _underlyingMongoRunner?.ConnectionString ?? throw new ObjectDisposedException(nameof(IMongoRunner));
- public MongoRunnerWrapper(MongoRunnerProvider owner, IMongoRunner underlyingMongoRunner)
- {
- _owner = owner;
- _underlyingMongoRunner = underlyingMongoRunner;
- }
-
public void Import(string database, string collection, string inputFilePath, string? additionalArguments = null, bool drop = false)
{
if (_underlyingMongoRunner == null)