Skip to content

Commit 972c50c

Browse files
committedMar 22, 2024
Revert "Resharper: Replace async method with Task return"
Reverting this Resharper rule because it makes stack traces harder to understand, while the gain it provides is theoretical. Resharper turned off this suggestion in the default ruleset in a later version. This reverts commit 3e1b27b.
1 parent c3e23da commit 972c50c

File tree

24 files changed

+110
-79
lines changed

24 files changed

+110
-79
lines changed
 

‎WarningSeverities.DotSettings

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,6 @@
166166
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RemoveRedundantOrStatement_002ETrue/@EntryIndexedValue">WARNING</s:String>
167167
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RemoveToList_002E1/@EntryIndexedValue">WARNING</s:String>
168168
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RemoveToList_002E2/@EntryIndexedValue">WARNING</s:String>
169-
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ReplaceAsyncWithTaskReturn/@EntryIndexedValue">WARNING</s:String>
170169
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ReplaceObjectPatternWithVarPattern/@EntryIndexedValue">WARNING</s:String>
171170
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ReplaceSequenceEqualWithConstantPattern/@EntryIndexedValue">WARNING</s:String>
172171
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ReplaceWithFirstOrDefault_002E1/@EntryIndexedValue">WARNING</s:String>

‎src/Examples/DapperExample/Repositories/DapperRepository.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ public async Task<IReadOnlyCollection<TResource>> GetAsync(QueryLayer queryLayer
161161
}
162162

163163
/// <inheritdoc />
164-
public Task<int> CountAsync(FilterExpression? filter, CancellationToken cancellationToken)
164+
public async Task<int> CountAsync(FilterExpression? filter, CancellationToken cancellationToken)
165165
{
166166
var queryLayer = new QueryLayer(ResourceType)
167167
{
@@ -173,7 +173,7 @@ public Task<int> CountAsync(FilterExpression? filter, CancellationToken cancella
173173
CommandDefinition sqlCommand = _dapperFacade.GetSqlCommand(selectNode, cancellationToken);
174174
LogSqlCommand(sqlCommand);
175175

176-
return ExecuteQueryAsync(connection => connection.ExecuteScalarAsync<int>(sqlCommand), cancellationToken);
176+
return await ExecuteQueryAsync(async connection => await connection.ExecuteScalarAsync<int>(sqlCommand), cancellationToken);
177177
}
178178

179179
/// <inheritdoc />

‎src/JsonApiDotNetCore/AtomicOperations/OperationsProcessor.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public OperationsProcessor(IOperationProcessorAccessor operationProcessorAccesso
9999
return results;
100100
}
101101

102-
protected virtual Task<OperationContainer?> ProcessOperationAsync(OperationContainer operation, CancellationToken cancellationToken)
102+
protected virtual async Task<OperationContainer?> ProcessOperationAsync(OperationContainer operation, CancellationToken cancellationToken)
103103
{
104104
cancellationToken.ThrowIfCancellationRequested();
105105

@@ -108,7 +108,7 @@ public OperationsProcessor(IOperationProcessorAccessor operationProcessorAccesso
108108
_targetedFields.CopyFrom(operation.TargetedFields);
109109
_request.CopyFrom(operation.Request);
110110

111-
return _operationProcessorAccessor.ProcessAsync(operation, cancellationToken);
111+
return await _operationProcessorAccessor.ProcessAsync(operation, cancellationToken);
112112
}
113113

114114
protected void TrackLocalIdsForOperation(OperationContainer operation)

‎src/JsonApiDotNetCore/Controllers/JsonApiController.cs

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -42,78 +42,78 @@ protected JsonApiController(IJsonApiOptions options, IResourceGraph resourceGrap
4242
/// <inheritdoc />
4343
[HttpGet]
4444
[HttpHead]
45-
public override Task<IActionResult> GetAsync(CancellationToken cancellationToken)
45+
public override async Task<IActionResult> GetAsync(CancellationToken cancellationToken)
4646
{
47-
return base.GetAsync(cancellationToken);
47+
return await base.GetAsync(cancellationToken);
4848
}
4949

5050
/// <inheritdoc />
5151
[HttpGet("{id}")]
5252
[HttpHead("{id}")]
53-
public override Task<IActionResult> GetAsync([Required] TId id, CancellationToken cancellationToken)
53+
public override async Task<IActionResult> GetAsync([Required] TId id, CancellationToken cancellationToken)
5454
{
55-
return base.GetAsync(id, cancellationToken);
55+
return await base.GetAsync(id, cancellationToken);
5656
}
5757

5858
/// <inheritdoc />
5959
[HttpGet("{id}/{relationshipName}")]
6060
[HttpHead("{id}/{relationshipName}")]
61-
public override Task<IActionResult> GetSecondaryAsync([Required] TId id, [Required] string relationshipName, CancellationToken cancellationToken)
61+
public override async Task<IActionResult> GetSecondaryAsync([Required] TId id, [Required] string relationshipName, CancellationToken cancellationToken)
6262
{
63-
return base.GetSecondaryAsync(id, relationshipName, cancellationToken);
63+
return await base.GetSecondaryAsync(id, relationshipName, cancellationToken);
6464
}
6565

6666
/// <inheritdoc />
6767
[HttpGet("{id}/relationships/{relationshipName}")]
6868
[HttpHead("{id}/relationships/{relationshipName}")]
69-
public override Task<IActionResult> GetRelationshipAsync([Required] TId id, [Required] string relationshipName, CancellationToken cancellationToken)
69+
public override async Task<IActionResult> GetRelationshipAsync([Required] TId id, [Required] string relationshipName, CancellationToken cancellationToken)
7070
{
71-
return base.GetRelationshipAsync(id, relationshipName, cancellationToken);
71+
return await base.GetRelationshipAsync(id, relationshipName, cancellationToken);
7272
}
7373

7474
/// <inheritdoc />
7575
[HttpPost]
76-
public override Task<IActionResult> PostAsync([Required] TResource resource, CancellationToken cancellationToken)
76+
public override async Task<IActionResult> PostAsync([Required] TResource resource, CancellationToken cancellationToken)
7777
{
78-
return base.PostAsync(resource, cancellationToken);
78+
return await base.PostAsync(resource, cancellationToken);
7979
}
8080

8181
/// <inheritdoc />
8282
[HttpPost("{id}/relationships/{relationshipName}")]
83-
public override Task<IActionResult> PostRelationshipAsync([Required] TId id, [Required] string relationshipName,
83+
public override async Task<IActionResult> PostRelationshipAsync([Required] TId id, [Required] string relationshipName,
8484
[Required] ISet<IIdentifiable> rightResourceIds, CancellationToken cancellationToken)
8585
{
86-
return base.PostRelationshipAsync(id, relationshipName, rightResourceIds, cancellationToken);
86+
return await base.PostRelationshipAsync(id, relationshipName, rightResourceIds, cancellationToken);
8787
}
8888

8989
/// <inheritdoc />
9090
[HttpPatch("{id}")]
91-
public override Task<IActionResult> PatchAsync([Required] TId id, [Required] TResource resource, CancellationToken cancellationToken)
91+
public override async Task<IActionResult> PatchAsync([Required] TId id, [Required] TResource resource, CancellationToken cancellationToken)
9292
{
93-
return base.PatchAsync(id, resource, cancellationToken);
93+
return await base.PatchAsync(id, resource, cancellationToken);
9494
}
9595

9696
/// <inheritdoc />
9797
[HttpPatch("{id}/relationships/{relationshipName}")]
9898
// Parameter `[Required] object? rightValue` makes Swashbuckle generate the OpenAPI request body as required. We don't actually validate ModelState, so it doesn't hurt.
99-
public override Task<IActionResult> PatchRelationshipAsync([Required] TId id, [Required] string relationshipName, [Required] object? rightValue,
99+
public override async Task<IActionResult> PatchRelationshipAsync([Required] TId id, [Required] string relationshipName, [Required] object? rightValue,
100100
CancellationToken cancellationToken)
101101
{
102-
return base.PatchRelationshipAsync(id, relationshipName, rightValue, cancellationToken);
102+
return await base.PatchRelationshipAsync(id, relationshipName, rightValue, cancellationToken);
103103
}
104104

105105
/// <inheritdoc />
106106
[HttpDelete("{id}")]
107-
public override Task<IActionResult> DeleteAsync([Required] TId id, CancellationToken cancellationToken)
107+
public override async Task<IActionResult> DeleteAsync([Required] TId id, CancellationToken cancellationToken)
108108
{
109-
return base.DeleteAsync(id, cancellationToken);
109+
return await base.DeleteAsync(id, cancellationToken);
110110
}
111111

112112
/// <inheritdoc />
113113
[HttpDelete("{id}/relationships/{relationshipName}")]
114-
public override Task<IActionResult> DeleteRelationshipAsync([Required] TId id, [Required] string relationshipName,
114+
public override async Task<IActionResult> DeleteRelationshipAsync([Required] TId id, [Required] string relationshipName,
115115
[Required] ISet<IIdentifiable> rightResourceIds, CancellationToken cancellationToken)
116116
{
117-
return base.DeleteRelationshipAsync(id, relationshipName, rightResourceIds, cancellationToken);
117+
return await base.DeleteRelationshipAsync(id, relationshipName, rightResourceIds, cancellationToken);
118118
}
119119
}

‎src/JsonApiDotNetCore/Controllers/JsonApiOperationsController.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ public abstract class JsonApiOperationsController(
1818
{
1919
/// <inheritdoc />
2020
[HttpPost]
21-
public override Task<IActionResult> PostOperationsAsync([Required] IList<OperationContainer> operations, CancellationToken cancellationToken)
21+
public override async Task<IActionResult> PostOperationsAsync([Required] IList<OperationContainer> operations, CancellationToken cancellationToken)
2222
{
23-
return base.PostOperationsAsync(operations, cancellationToken);
23+
return await base.PostOperationsAsync(operations, cancellationToken);
2424
}
2525
}

‎src/JsonApiDotNetCore/Middleware/JsonApiOutputFormatter.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ public bool CanWriteResult(OutputFormatterCanWriteContext context)
1616
}
1717

1818
/// <inheritdoc />
19-
public Task WriteAsync(OutputFormatterWriteContext context)
19+
public async Task WriteAsync(OutputFormatterWriteContext context)
2020
{
2121
ArgumentGuard.NotNull(context);
2222

2323
var writer = context.HttpContext.RequestServices.GetRequiredService<IJsonApiWriter>();
24-
return writer.WriteAsync(context.Object, context.HttpContext);
24+
await writer.WriteAsync(context.Object, context.HttpContext);
2525
}
2626
}

‎src/JsonApiDotNetCore/Serialization/Response/JsonApiWriter.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,22 +44,22 @@ public JsonApiWriter(IJsonApiRequest request, IJsonApiOptions options, IResponse
4444
}
4545

4646
/// <inheritdoc />
47-
public Task WriteAsync(object? model, HttpContext httpContext)
47+
public async Task WriteAsync(object? model, HttpContext httpContext)
4848
{
4949
ArgumentGuard.NotNull(httpContext);
5050

5151
if (model == null && !CanWriteBody((HttpStatusCode)httpContext.Response.StatusCode))
5252
{
5353
// Prevent exception from Kestrel server, caused by writing data:null json response.
54-
return Task.CompletedTask;
54+
return;
5555
}
5656

5757
string? responseBody = GetResponseBody(model, httpContext);
5858

5959
if (httpContext.Request.Method == HttpMethod.Head.Method)
6060
{
6161
httpContext.Response.GetTypedHeaders().ContentLength = responseBody == null ? 0 : Encoding.UTF8.GetByteCount(responseBody);
62-
return Task.CompletedTask;
62+
return;
6363
}
6464

6565
_traceWriter.LogMessage(() =>
@@ -70,7 +70,7 @@ public Task WriteAsync(object? model, HttpContext httpContext)
7070
return $"Sending {httpContext.Response.StatusCode} response for {method} request at '{url}' with body: <<{responseBody}>>";
7171
});
7272

73-
return SendResponseBodyAsync(httpContext.Response, responseBody);
73+
await SendResponseBodyAsync(httpContext.Response, responseBody);
7474
}
7575

7676
private static bool CanWriteBody(HttpStatusCode statusCode)

‎src/JsonApiDotNetCore/Services/JsonApiResourceService.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -244,19 +244,19 @@ protected async Task AssertPrimaryResourceDoesNotExistAsync(TResource resource,
244244
}
245245
}
246246

247-
protected virtual Task InitializeResourceAsync(TResource resourceForDatabase, CancellationToken cancellationToken)
247+
protected virtual async Task InitializeResourceAsync(TResource resourceForDatabase, CancellationToken cancellationToken)
248248
{
249-
return _resourceDefinitionAccessor.OnPrepareWriteAsync(resourceForDatabase, WriteOperationKind.CreateResource, cancellationToken);
249+
await _resourceDefinitionAccessor.OnPrepareWriteAsync(resourceForDatabase, WriteOperationKind.CreateResource, cancellationToken);
250250
}
251251

252-
private Task AccurizeResourceTypesInHierarchyToAssignInRelationshipsAsync(TResource primaryResource, CancellationToken cancellationToken)
252+
private async Task AccurizeResourceTypesInHierarchyToAssignInRelationshipsAsync(TResource primaryResource, CancellationToken cancellationToken)
253253
{
254-
return ValidateResourcesToAssignInRelationshipsExistWithRefreshAsync(primaryResource, true, cancellationToken);
254+
await ValidateResourcesToAssignInRelationshipsExistWithRefreshAsync(primaryResource, true, cancellationToken);
255255
}
256256

257-
protected Task AssertResourcesToAssignInRelationshipsExistAsync(TResource primaryResource, CancellationToken cancellationToken)
257+
protected async Task AssertResourcesToAssignInRelationshipsExistAsync(TResource primaryResource, CancellationToken cancellationToken)
258258
{
259-
return ValidateResourcesToAssignInRelationshipsExistWithRefreshAsync(primaryResource, false, cancellationToken);
259+
await ValidateResourcesToAssignInRelationshipsExistWithRefreshAsync(primaryResource, false, cancellationToken);
260260
}
261261

262262
private async Task ValidateResourcesToAssignInRelationshipsExistWithRefreshAsync(TResource primaryResource, bool onlyIfTypeHierarchy,

‎test/DapperTests/IntegrationTests/AtomicOperations/AtomicOperationsTests.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,10 @@ public async Task Can_rollback_on_error()
421421

422422
const string personLocalId = "new-person";
423423

424-
await _testContext.RunOnDatabaseAsync(dbContext => _testContext.ClearAllTablesAsync(dbContext));
424+
await _testContext.RunOnDatabaseAsync(async dbContext =>
425+
{
426+
await _testContext.ClearAllTablesAsync(dbContext);
427+
});
425428

426429
var requestBody = new
427430
{

‎test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Controllers/CreateMusicTrackOperationsController.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ public sealed class CreateMusicTrackOperationsController(
1818
IJsonApiOptions options, IResourceGraph resourceGraph, ILoggerFactory loggerFactory, IOperationsProcessor processor, IJsonApiRequest request,
1919
ITargetedFields targetedFields) : JsonApiOperationsController(options, resourceGraph, loggerFactory, processor, request, targetedFields)
2020
{
21-
public override Task<IActionResult> PostOperationsAsync(IList<OperationContainer> operations, CancellationToken cancellationToken)
21+
public override async Task<IActionResult> PostOperationsAsync(IList<OperationContainer> operations, CancellationToken cancellationToken)
2222
{
2323
AssertOnlyCreatingMusicTracks(operations);
2424

25-
return base.PostOperationsAsync(operations, cancellationToken);
25+
return await base.PostOperationsAsync(operations, cancellationToken);
2626
}
2727

2828
private static void AssertOnlyCreatingMusicTracks(IEnumerable<OperationContainer> operations)

‎test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/ResourceDefinitions/Serialization/AtomicSerializationResourceDefinitionTests.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,10 @@ public async Task Transforms_on_create_resource_with_side_effects()
4242

4343
List<RecordCompany> newCompanies = _fakers.RecordCompany.Generate(2);
4444

45-
await _testContext.RunOnDatabaseAsync(dbContext => dbContext.ClearTableAsync<RecordCompany>());
45+
await _testContext.RunOnDatabaseAsync(async dbContext =>
46+
{
47+
await dbContext.ClearTableAsync<RecordCompany>();
48+
});
4649

4750
var requestBody = new
4851
{

‎test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Transactions/AtomicRollbackTests.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,10 @@ public async Task Can_rollback_on_error()
2727
DateTimeOffset newBornAt = _fakers.Performer.Generate().BornAt;
2828
string newTitle = _fakers.MusicTrack.Generate().Title;
2929

30-
await _testContext.RunOnDatabaseAsync(dbContext => dbContext.ClearTablesAsync<Performer, MusicTrack>());
30+
await _testContext.RunOnDatabaseAsync(async dbContext =>
31+
{
32+
await dbContext.ClearTablesAsync<Performer, MusicTrack>();
33+
});
3134

3235
string unknownPerformerId = Unknown.StringId.For<Performer, int>();
3336

@@ -110,7 +113,10 @@ public async Task Can_restore_to_previous_savepoint_on_error()
110113
// Arrange
111114
string newTrackTitle = _fakers.MusicTrack.Generate().Title;
112115

113-
await _testContext.RunOnDatabaseAsync(dbContext => dbContext.ClearTablesAsync<Performer, MusicTrack>());
116+
await _testContext.RunOnDatabaseAsync(async dbContext =>
117+
{
118+
await dbContext.ClearTablesAsync<Performer, MusicTrack>();
119+
});
114120

115121
const string trackLid = "track-1";
116122

‎test/JsonApiDotNetCoreTests/IntegrationTests/Meta/ResponseMetaTests.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,10 @@ public ResponseMetaTests(IntegrationTestContext<TestableStartup<MetaDbContext>,
2929
public async Task Returns_top_level_meta()
3030
{
3131
// Arrange
32-
await _testContext.RunOnDatabaseAsync(dbContext => dbContext.ClearTableAsync<SupportTicket>());
32+
await _testContext.RunOnDatabaseAsync(async dbContext =>
33+
{
34+
await dbContext.ClearTableAsync<SupportTicket>();
35+
});
3336

3437
const string route = "/supportTickets";
3538

‎test/JsonApiDotNetCoreTests/IntegrationTests/Meta/TopLevelCountTests.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,10 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
8383
public async Task Renders_resource_count_for_empty_collection()
8484
{
8585
// Arrange
86-
await _testContext.RunOnDatabaseAsync(dbContext => dbContext.ClearTableAsync<SupportTicket>());
86+
await _testContext.RunOnDatabaseAsync(async dbContext =>
87+
{
88+
await dbContext.ClearTableAsync<SupportTicket>();
89+
});
8790

8891
const string route = "/supportTickets";
8992

‎test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/MessagingGroupDefinition.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,8 @@ protected async Task FinishWriteAsync(DomainGroup group, WriteOperationKind writ
166166

167167
protected abstract Task FlushMessageAsync(OutgoingMessage message, CancellationToken cancellationToken);
168168

169-
protected virtual Task<DomainGroup?> GetGroupToDeleteAsync(Guid groupId, CancellationToken cancellationToken)
169+
protected virtual async Task<DomainGroup?> GetGroupToDeleteAsync(Guid groupId, CancellationToken cancellationToken)
170170
{
171-
return _groupSet.Include(group => group.Users).FirstOrDefaultAsync(group => group.Id == groupId, cancellationToken);
171+
return await _groupSet.Include(group => group.Users).FirstOrDefaultAsync(group => group.Id == groupId, cancellationToken);
172172
}
173173
}

‎test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/MessagingUserDefinition.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,8 @@ protected async Task FinishWriteAsync(DomainUser user, WriteOperationKind writeO
113113

114114
protected abstract Task FlushMessageAsync(OutgoingMessage message, CancellationToken cancellationToken);
115115

116-
protected virtual Task<DomainUser?> GetUserToDeleteAsync(Guid userId, CancellationToken cancellationToken)
116+
protected virtual async Task<DomainUser?> GetUserToDeleteAsync(Guid userId, CancellationToken cancellationToken)
117117
{
118-
return _userSet.Include(domainUser => domainUser.Group).FirstOrDefaultAsync(domainUser => domainUser.Id == userId, cancellationToken);
118+
return await _userSet.Include(domainUser => domainUser.Group).FirstOrDefaultAsync(domainUser => domainUser.Id == userId, cancellationToken);
119119
}
120120
}

‎test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/TransactionalOutboxPattern/OutboxTests.Group.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,10 @@ public async Task Create_group_writes_to_outbox()
1919

2020
string newGroupName = _fakers.DomainGroup.Generate().Name;
2121

22-
await _testContext.RunOnDatabaseAsync(dbContext => dbContext.ClearTableAsync<OutgoingMessage>());
22+
await _testContext.RunOnDatabaseAsync(async dbContext =>
23+
{
24+
await dbContext.ClearTableAsync<OutgoingMessage>();
25+
});
2326

2427
var requestBody = new
2528
{

‎test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/TransactionalOutboxPattern/OutboxTests.User.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@ public async Task Create_user_writes_to_outbox()
2020
string newLoginName = _fakers.DomainUser.Generate().LoginName;
2121
string newDisplayName = _fakers.DomainUser.Generate().DisplayName!;
2222

23-
await _testContext.RunOnDatabaseAsync(dbContext => dbContext.ClearTableAsync<OutgoingMessage>());
23+
await _testContext.RunOnDatabaseAsync(async dbContext =>
24+
{
25+
await dbContext.ClearTableAsync<OutgoingMessage>();
26+
});
2427

2528
var requestBody = new
2629
{

‎test/JsonApiDotNetCoreTests/IntegrationTests/SoftDeletion/SoftDeletionAwareResourceService.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,16 @@ public override async Task AddToToManyRelationshipAsync(TId leftId, string relat
7373
await base.AddToToManyRelationshipAsync(leftId, relationshipName, rightResourceIds, cancellationToken);
7474
}
7575

76-
public override Task DeleteAsync(TId id, CancellationToken cancellationToken)
76+
public override async Task DeleteAsync(TId id, CancellationToken cancellationToken)
7777
{
7878
if (IsSoftDeletable(typeof(TResource)))
7979
{
80-
return SoftDeleteAsync(id, cancellationToken);
80+
await SoftDeleteAsync(id, cancellationToken);
81+
}
82+
else
83+
{
84+
await base.DeleteAsync(id, cancellationToken);
8185
}
82-
83-
return base.DeleteAsync(id, cancellationToken);
8486
}
8587

8688
private async Task SoftDeleteAsync(TId id, CancellationToken cancellationToken)

‎test/JsonApiDotNetCoreTests/IntegrationTests/ZeroKeys/EmptyGuidAsKeyTests.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,10 @@ public async Task Can_create_resource_with_empty_ID()
9797
// Arrange
9898
string newName = _fakers.Map.Generate().Name;
9999

100-
await _testContext.RunOnDatabaseAsync(dbContext => dbContext.ClearTableAsync<Map>());
100+
await _testContext.RunOnDatabaseAsync(async dbContext =>
101+
{
102+
await dbContext.ClearTableAsync<Map>();
103+
});
101104

102105
var requestBody = new
103106
{

‎test/JsonApiDotNetCoreTests/IntegrationTests/ZeroKeys/ZeroAsKeyTests.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,10 @@ public async Task Can_create_resource_with_zero_ID()
9696
// Arrange
9797
string newTitle = _fakers.Game.Generate().Title;
9898

99-
await _testContext.RunOnDatabaseAsync(dbContext => dbContext.ClearTableAsync<Game>());
99+
await _testContext.RunOnDatabaseAsync(async dbContext =>
100+
{
101+
await dbContext.ClearTableAsync<Game>();
102+
});
100103

101104
var requestBody = new
102105
{

‎test/TestBuildingBlocks/DbContextExtensions.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,17 @@ public static void AddInRange(this DbContext dbContext, params object[] entities
1010
dbContext.AddRange(entities);
1111
}
1212

13-
public static Task ClearTableAsync<TEntity>(this DbContext dbContext)
13+
public static async Task ClearTableAsync<TEntity>(this DbContext dbContext)
1414
where TEntity : class
1515
{
16-
return ClearTablesAsync(dbContext, typeof(TEntity));
16+
await ClearTablesAsync(dbContext, typeof(TEntity));
1717
}
1818

19-
public static Task ClearTablesAsync<TEntity1, TEntity2>(this DbContext dbContext)
19+
public static async Task ClearTablesAsync<TEntity1, TEntity2>(this DbContext dbContext)
2020
where TEntity1 : class
2121
where TEntity2 : class
2222
{
23-
return ClearTablesAsync(dbContext, typeof(TEntity1), typeof(TEntity2));
23+
await ClearTablesAsync(dbContext, typeof(TEntity1), typeof(TEntity2));
2424
}
2525

2626
private static async Task ClearTablesAsync(this DbContext dbContext, params Type[] modelTypes)

‎test/TestBuildingBlocks/IntegrationTest.cs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,40 +22,40 @@ static IntegrationTest()
2222
ThrottleSemaphore = new SemaphoreSlim(maxConcurrentTestRuns);
2323
}
2424

25-
public Task<(HttpResponseMessage httpResponse, TResponseDocument responseDocument)> ExecuteHeadAsync<TResponseDocument>(string requestUrl,
25+
public async Task<(HttpResponseMessage httpResponse, TResponseDocument responseDocument)> ExecuteHeadAsync<TResponseDocument>(string requestUrl,
2626
Action<HttpRequestHeaders>? setRequestHeaders = null)
2727
{
28-
return ExecuteRequestAsync<TResponseDocument>(HttpMethod.Head, requestUrl, null, null, setRequestHeaders);
28+
return await ExecuteRequestAsync<TResponseDocument>(HttpMethod.Head, requestUrl, null, null, setRequestHeaders);
2929
}
3030

31-
public Task<(HttpResponseMessage httpResponse, TResponseDocument responseDocument)> ExecuteGetAsync<TResponseDocument>(string requestUrl,
31+
public async Task<(HttpResponseMessage httpResponse, TResponseDocument responseDocument)> ExecuteGetAsync<TResponseDocument>(string requestUrl,
3232
Action<HttpRequestHeaders>? setRequestHeaders = null)
3333
{
34-
return ExecuteRequestAsync<TResponseDocument>(HttpMethod.Get, requestUrl, null, null, setRequestHeaders);
34+
return await ExecuteRequestAsync<TResponseDocument>(HttpMethod.Get, requestUrl, null, null, setRequestHeaders);
3535
}
3636

37-
public Task<(HttpResponseMessage httpResponse, TResponseDocument responseDocument)> ExecutePostAsync<TResponseDocument>(string requestUrl,
37+
public async Task<(HttpResponseMessage httpResponse, TResponseDocument responseDocument)> ExecutePostAsync<TResponseDocument>(string requestUrl,
3838
object requestBody, string contentType = HeaderConstants.MediaType, Action<HttpRequestHeaders>? setRequestHeaders = null)
3939
{
40-
return ExecuteRequestAsync<TResponseDocument>(HttpMethod.Post, requestUrl, requestBody, contentType, setRequestHeaders);
40+
return await ExecuteRequestAsync<TResponseDocument>(HttpMethod.Post, requestUrl, requestBody, contentType, setRequestHeaders);
4141
}
4242

43-
public Task<(HttpResponseMessage httpResponse, TResponseDocument responseDocument)> ExecutePostAtomicAsync<TResponseDocument>(string requestUrl,
43+
public async Task<(HttpResponseMessage httpResponse, TResponseDocument responseDocument)> ExecutePostAtomicAsync<TResponseDocument>(string requestUrl,
4444
object requestBody, string contentType = HeaderConstants.AtomicOperationsMediaType, Action<HttpRequestHeaders>? setRequestHeaders = null)
4545
{
46-
return ExecuteRequestAsync<TResponseDocument>(HttpMethod.Post, requestUrl, requestBody, contentType, setRequestHeaders);
46+
return await ExecuteRequestAsync<TResponseDocument>(HttpMethod.Post, requestUrl, requestBody, contentType, setRequestHeaders);
4747
}
4848

49-
public Task<(HttpResponseMessage httpResponse, TResponseDocument responseDocument)> ExecutePatchAsync<TResponseDocument>(string requestUrl,
49+
public async Task<(HttpResponseMessage httpResponse, TResponseDocument responseDocument)> ExecutePatchAsync<TResponseDocument>(string requestUrl,
5050
object requestBody, string contentType = HeaderConstants.MediaType, Action<HttpRequestHeaders>? setRequestHeaders = null)
5151
{
52-
return ExecuteRequestAsync<TResponseDocument>(HttpMethod.Patch, requestUrl, requestBody, contentType, setRequestHeaders);
52+
return await ExecuteRequestAsync<TResponseDocument>(HttpMethod.Patch, requestUrl, requestBody, contentType, setRequestHeaders);
5353
}
5454

55-
public Task<(HttpResponseMessage httpResponse, TResponseDocument responseDocument)> ExecuteDeleteAsync<TResponseDocument>(string requestUrl,
55+
public async Task<(HttpResponseMessage httpResponse, TResponseDocument responseDocument)> ExecuteDeleteAsync<TResponseDocument>(string requestUrl,
5656
object? requestBody = null, string contentType = HeaderConstants.MediaType, Action<HttpRequestHeaders>? setRequestHeaders = null)
5757
{
58-
return ExecuteRequestAsync<TResponseDocument>(HttpMethod.Delete, requestUrl, requestBody, contentType, setRequestHeaders);
58+
return await ExecuteRequestAsync<TResponseDocument>(HttpMethod.Delete, requestUrl, requestBody, contentType, setRequestHeaders);
5959
}
6060

6161
private async Task<(HttpResponseMessage httpResponse, TResponseDocument responseDocument)> ExecuteRequestAsync<TResponseDocument>(HttpMethod method,
@@ -116,9 +116,9 @@ static IntegrationTest()
116116
}
117117
}
118118

119-
public Task InitializeAsync()
119+
public async Task InitializeAsync()
120120
{
121-
return ThrottleSemaphore.WaitAsync();
121+
await ThrottleSemaphore.WaitAsync();
122122
}
123123

124124
public virtual Task DisposeAsync()

‎test/TestBuildingBlocks/QueryableExtensions.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ public static Task<TResource> FirstWithIdAsync<TResource, TId>(this IQueryable<T
1111
return resources.FirstAsync(resource => Equals(resource.Id, id), cancellationToken);
1212
}
1313

14-
public static Task<TResource?> FirstWithIdOrDefaultAsync<TResource, TId>(this IQueryable<TResource> resources, TId id,
14+
public static async Task<TResource?> FirstWithIdOrDefaultAsync<TResource, TId>(this IQueryable<TResource> resources, TId id,
1515
CancellationToken cancellationToken = default)
1616
where TResource : IIdentifiable<TId>
1717
{
18-
return resources.FirstOrDefaultAsync(resource => Equals(resource.Id, id), cancellationToken);
18+
return await resources.FirstOrDefaultAsync(resource => Equals(resource.Id, id), cancellationToken);
1919
}
2020
}

0 commit comments

Comments
 (0)
Please sign in to comment.