Skip to content

Commit 690b124

Browse files
committed
Fix tests
1 parent 2c77699 commit 690b124

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

src/Http/Routing/test/UnitTests/Builder/RequestDelegateEndpointRouteBuilderExtensionsTest.cs

+31
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,37 @@ public async Task RequestFilters_CanAssertOnEmptyResult()
257257
Assert.Same(Results.Empty, response);
258258
}
259259

260+
[Fact]
261+
public async Task RequestFilters_ReturnValue_SerializeJson()
262+
{
263+
var builder = new DefaultEndpointRouteBuilder(new ApplicationBuilder(EmptyServiceProvider.Instance));
264+
var httpContext = new DefaultHttpContext();
265+
var responseBodyStream = new MemoryStream();
266+
httpContext.Response.Body = responseBodyStream;
267+
268+
var @delegate = (HttpContext context) => Task.CompletedTask;
269+
270+
var endpointBuilder = builder.Map("/", @delegate)
271+
.AddEndpointFilterFactory(filterFactory: (routeHandlerContext, next) =>
272+
{
273+
return async invocationContext =>
274+
{
275+
await next(invocationContext);
276+
return new MyCoolType(Name: "Jason"); // serialized as JSON
277+
};
278+
});
279+
280+
var dataSource = GetBuilderEndpointDataSource(builder);
281+
var endpoint = Assert.Single(dataSource.Endpoints);
282+
283+
await endpoint.RequestDelegate!(httpContext);
284+
285+
var responseBody = Encoding.UTF8.GetString(responseBodyStream.ToArray());
286+
Assert.Equal(@"{""name"":""Jason""}", responseBody);
287+
}
288+
289+
private record struct MyCoolType(string Name);
290+
260291
private sealed class HttpContextArgFilter : IEndpointFilter
261292
{
262293
private readonly string _name;

0 commit comments

Comments
 (0)