Skip to content

Commit 1e0eb6f

Browse files
authored
Merge pull request #123 from cnblogs/fix-nullable-result-from-query
fix: map null query result to NotFoundResult
2 parents 3b7d19a + 98aae1e commit 1e0eb6f

File tree

9 files changed

+25
-11
lines changed

9 files changed

+25
-11
lines changed

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
</PropertyGroup>
1414

1515
<ItemGroup>
16-
<PackageReference Include="Cnblogs.CodeQuality" Version="1.6.8">
16+
<PackageReference Include="Cnblogs.CodeQuality" Version="1.7.0">
1717
<PrivateAssets>all</PrivateAssets>
1818
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1919
</PackageReference>

src/Cnblogs.Architecture.Ddd.Cqrs.AspNetCore/QueryEndpointHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,6 @@ public QueryEndpointHandler(IMediator mediator)
3535
}
3636

3737
var response = await _mediator.Send(query);
38-
return response;
38+
return response == null ? Results.NotFound() : Results.Ok(response);
3939
}
4040
}

src/Cnblogs.Architecture.Ddd.Domain.Abstractions/Cnblogs.Architecture.Ddd.Domain.Abstractions.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
</PropertyGroup>
1515

1616
<ItemGroup>
17-
<PackageReference Include="MediatR" Version="12.0.1"/>
17+
<PackageReference Include="MediatR" Version="12.1.0" />
1818
</ItemGroup>
1919

2020
</Project>

src/Cnblogs.Architecture.Ddd.EventBus.Abstractions/Cnblogs.Architecture.Ddd.EventBus.Abstractions.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@
66
</Description>
77
</PropertyGroup>
88
<ItemGroup>
9-
<PackageReference Include="MediatR" Version="12.0.1"/>
9+
<PackageReference Include="MediatR" Version="12.1.0" />
1010
</ItemGroup>
1111
</Project>

test/Cnblogs.Architecture.IntegrationTestProject/Application/Queries/GetStringQuery.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
namespace Cnblogs.Architecture.IntegrationTestProject.Application.Queries;
44

5-
public record GetStringQuery(string? AppId = null, int? StringId = null) : IQuery<string>;
5+
public record GetStringQuery(string? AppId = null, int? StringId = null, bool Found = true) : IQuery<string>;

test/Cnblogs.Architecture.IntegrationTestProject/Application/Queries/GetStringQueryHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ public class GetStringQueryHandler : IQueryHandler<GetStringQuery, string>
77
/// <inheritdoc />
88
public Task<string?> Handle(GetStringQuery request, CancellationToken cancellationToken)
99
{
10-
return Task.FromResult((string?)"Hello");
10+
return request.Found ? Task.FromResult((string?)"Hello") : Task.FromResult((string?)null);
1111
}
1212
}

test/Cnblogs.Architecture.IntegrationTests/Cnblogs.Architecture.IntegrationTests.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
<PackageReference Include="Cnblogs.Serilog.Extensions" Version="1.1.0" />
44
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="7.0.8" />
55
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.6.3" />
6-
<PackageReference Include="xunit" Version="2.4.2" />
7-
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
6+
<PackageReference Include="xunit" Version="2.5.0" />
7+
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.0">
88
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
99
<PrivateAssets>all</PrivateAssets>
1010
</PackageReference>

test/Cnblogs.Architecture.IntegrationTests/CqrsRouteMapperTests.cs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Net.Http.Json;
1+
using System.Net;
2+
using System.Net.Http.Json;
23
using Cnblogs.Architecture.Ddd.Infrastructure.Abstractions;
34
using Cnblogs.Architecture.IntegrationTestProject;
45
using FluentAssertions;
@@ -23,6 +24,19 @@ public async Task GetItem_SuccessAsync()
2324
content.Should().NotBeNullOrEmpty();
2425
}
2526

27+
[Fact]
28+
public async Task GetItem_NotFondAsync()
29+
{
30+
// Arrange
31+
var builder = new WebApplicationFactory<Program>();
32+
33+
// Act
34+
var response = await builder.CreateClient().GetAsync("/api/v1/strings/1?found=false");
35+
36+
// Assert
37+
response.StatusCode.Should().Be(HttpStatusCode.NotFound);
38+
}
39+
2640
[Fact]
2741
public async Task ListItems_SuccessAsync()
2842
{

test/Cnblogs.Architecture.UnitTests/Cnblogs.Architecture.UnitTests.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
<ItemGroup>
44
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="7.0.8" />
55
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.6.3" />
6-
<PackageReference Include="xunit" Version="2.4.2" />
7-
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
6+
<PackageReference Include="xunit" Version="2.5.0" />
7+
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.0">
88
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
99
<PrivateAssets>all</PrivateAssets>
1010
</PackageReference>

0 commit comments

Comments
 (0)