Skip to content

Commit 7c395e4

Browse files
authored
Merge pull request #222 from cnblogs/fix-cqrs-header-appending
fix: cqrs header mapping
2 parents ed0cb7a + abbd497 commit 7c395e4

File tree

5 files changed

+14
-6
lines changed

5 files changed

+14
-6
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ protected IActionResult HandleCommandResponse<TResponse, TError>(CommandResponse
5252
{
5353
if (response.IsSuccess())
5454
{
55-
return Request.Headers.CqrsVersion() > 1 ? Ok(response) : Ok(response.Response);
55+
return Request.Headers.CqrsVersion() > 1 ? new CqrsObjectResult(response) : Ok(response.Response);
5656
}
5757

5858
return HandleCommandResponse((CommandResponse<TError>)response);

src/Cnblogs.Architecture.Ddd.Cqrs.DependencyInjection/ServiceCollectionInjector.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using System.Reflection;
2-
32
using Cnblogs.Architecture.Ddd.Cqrs.Abstractions;
43
using Cnblogs.Architecture.Ddd.Cqrs.DependencyInjection;
54
using MediatR;
@@ -22,6 +21,12 @@ public static CqrsInjector AddCqrs(this IServiceCollection services, params Asse
2221
{
2322
services.AddTransient(typeof(IPipelineBehavior<,>), typeof(ValidationBehavior<,>));
2423
services.AddTransient(typeof(IPipelineBehavior<,>), typeof(LoggingBehavior<,>));
24+
if (assemblies.Length == 0)
25+
{
26+
// mediator needs at least one assembly to inject from
27+
assemblies = [typeof(CqrsInjector).Assembly];
28+
}
29+
2530
services.AddMediatR(cfg => cfg.RegisterServicesFromAssemblies(assemblies));
2631
return new CqrsInjector(services);
2732
}

test/Cnblogs.Architecture.IntegrationTests/CommandResponseHandlerTests.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ public async Task MinimalApi_CqrsV2_CommandResponseAsync()
5353
var content = await response.Content.ReadFromJsonAsync<CommandResponse<string, TestError>>();
5454

5555
// Assert
56+
response.Headers.CqrsVersion().Should().BeGreaterThan(1);
5657
content.Should().NotBeNull();
5758
content!.Response.Should().NotBeNullOrEmpty();
5859
}
@@ -89,7 +90,8 @@ public async Task Mvc_CurrentCqrsVersion_CommandResponseAsync()
8990

9091
// Assert
9192
response.Should().BeSuccessful();
92-
content!.Response.Should().NotBeNull();
93+
response.Headers.CqrsVersion().Should().BeGreaterThan(1);
94+
content!.Response.Should().NotBeNullOrEmpty();
9395
}
9496

9597
[Theory]

test/Cnblogs.Architecture.IntegrationTests/DaprTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public async Task Dapr_SubscribeEndpoint_OkAsync(SubscribeType subscribeType)
2121
{
2222
// Arrange
2323
var builder = WebApplication.CreateBuilder();
24-
builder.Services.AddEventBus(o => o.UseDapr(nameof(DaprTests)));
24+
builder.Services.AddCqrs(typeof(TestIntegrationEvent).Assembly).AddEventBus(o => o.UseDapr(nameof(DaprTests)));
2525
builder.WebHost.UseTestServer();
2626

2727
await using var app = builder.Build();
@@ -53,7 +53,7 @@ public async Task Dapr_SubscribeWithoutAnyAssembly_OkAsync()
5353
{
5454
// Arrange
5555
var builder = WebApplication.CreateBuilder();
56-
builder.Services.AddEventBus(o => o.UseDapr(nameof(DaprTests)));
56+
builder.Services.AddCqrs().AddEventBus(o => o.UseDapr(nameof(DaprTests)));
5757
builder.WebHost.UseTestServer();
5858

5959
var app = builder.Build();

test/Cnblogs.Architecture.UnitTests/EventBus/AssemblyAttributeTests.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using Cnblogs.Architecture.TestIntegrationEvents;
44
using FluentAssertions;
55
using Microsoft.AspNetCore.Builder;
6+
using Microsoft.Extensions.DependencyInjection;
67

78
namespace Cnblogs.Architecture.UnitTests.EventBus;
89

@@ -13,7 +14,7 @@ public void SubscribeByAssemblyMeta_Success()
1314
{
1415
// Arrange
1516
var builder = WebApplication.CreateBuilder();
16-
builder.Services.AddEventBus(o => o.UseDapr(nameof(AssemblyAttributeTests)));
17+
builder.Services.AddCqrs().AddEventBus(o => o.UseDapr(nameof(AssemblyAttributeTests)));
1718
var app = builder.Build();
1819

1920
// Act

0 commit comments

Comments
 (0)