Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System.Text.Json;
using Cnblogs.Architecture.Ddd.Cqrs.Abstractions;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Http.Json;

namespace Cnblogs.Architecture.Ddd.Cqrs.AspNetCore;

Expand All @@ -25,5 +26,5 @@ public class CqrsHttpOptions
/// <remarks>
/// For Controllers, please use <c>builder.AddControllers().AddLongToStringJsonConverter();</c>
/// </remarks>
public JsonSerializerOptions DefaultJsonSerializerOptions { get; set; } = new(JsonSerializerDefaults.Web);
public JsonSerializerOptions DefaultJsonSerializerOptions { get; set; } = new JsonOptions().SerializerOptions;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
using Cnblogs.Architecture.Ddd.Cqrs.Abstractions;
using Cnblogs.Architecture.Ddd.Infrastructure.Abstractions;
using Cnblogs.Architecture.IntegrationTestProject.Models;

namespace Cnblogs.Architecture.IntegrationTestProject.Application.Queries;

public record ListArticlesQuery(PagingParams? PagingParams, string? OrderByString) : IPageableQuery<ArticleDto>;
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
using Cnblogs.Architecture.Ddd.Cqrs.Abstractions;
using Cnblogs.Architecture.Ddd.Infrastructure.Abstractions;
using Cnblogs.Architecture.IntegrationTestProject.Models;

namespace Cnblogs.Architecture.IntegrationTestProject.Application.Queries;

public class ListArticlesQueryHandler : IPageableQueryHandler<ListArticlesQuery, ArticleDto>
{
/// <inheritdoc />
public Task<PagedList<ArticleDto>> Handle(ListArticlesQuery request, CancellationToken cancellationToken)
{
return Task.FromResult(new PagedList<ArticleDto>([new ArticleDto
{
Id = 1,
Title = "作为一个高中生开发者,我的所思所想"
}
]));
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using Cnblogs.Architecture.Ddd.Cqrs.Abstractions;
using Cnblogs.Architecture.Ddd.Cqrs.Abstractions;
using Cnblogs.Architecture.Ddd.Infrastructure.Abstractions;

namespace Cnblogs.Architecture.IntegrationTestProject.Application.Queries;

public record ListStringsQuery(PagingParams? PagingParams, string? OrderByString) : IPageableQuery<string>;
public record ListStringsQuery(PagingParams? PagingParams, string? OrderByString) : IPageableQuery<string>;
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using Cnblogs.Architecture.Ddd.Cqrs.Abstractions;
using Cnblogs.Architecture.Ddd.Cqrs.Abstractions;
using Cnblogs.Architecture.Ddd.Infrastructure.Abstractions;

namespace Cnblogs.Architecture.IntegrationTestProject.Application.Queries;
Expand All @@ -10,4 +10,4 @@ public Task<PagedList<string>> Handle(ListStringsQuery request, CancellationToke
{
return Task.FromResult(new PagedList<string>(["hello"]));
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
namespace Cnblogs.Architecture.IntegrationTestProject.Models;

public class ArticleDto
{
public int Id { get; set; }
public string Title { get; set; } = string.Empty;
}
3 changes: 2 additions & 1 deletion test/Cnblogs.Architecture.IntegrationTestProject/Program.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using System.Reflection;
using System.Reflection;
using Cnblogs.Architecture.Ddd.Cqrs.AspNetCore;
using Cnblogs.Architecture.Ddd.EventBus.Abstractions;
using Cnblogs.Architecture.Ddd.EventBus.Dapr;
Expand Down Expand Up @@ -39,6 +39,7 @@
async (int stringId, [FromQuery] bool found = true)
=> await Task.FromResult(new GetStringQuery(StringId: stringId, Found: found)));
v1.MapQuery<ListStringsQuery>("strings");
v1.MapQuery<ListArticlesQuery>("articles");
v1.MapQuery<GetLongToStringQuery>("long-to-string/{id:long}");
v1.MapCommand<CreateLongToStringCommand>("long-to-string");
v1.MapCommand(
Expand Down
22 changes: 22 additions & 0 deletions test/Cnblogs.Architecture.IntegrationTests/MinimalApiTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
using Cnblogs.Architecture.IntegrationTestProject;
using Microsoft.AspNetCore.Mvc.Testing;

namespace Cnblogs.Architecture.IntegrationTests;

public class MinimalApiTests
{
[Fact]
public async Task ResponseJsonWithChineseChars_RemainUnencodedAsync()
{
// Arrange
var builder = new WebApplicationFactory<Program>();

// Act
var response = await builder.CreateClient().GetAsync("/api/v1/articles");
var content = await response.Content.ReadAsStringAsync();

// Assert
Assert.True(response.IsSuccessStatusCode);
Assert.Contains("开发者", content);
}
}