Update AbpNoContentActionFilter with unit test

pull/6120/head
Lonze 5 years ago
parent 71bc369bca
commit 4b9608e584

@ -18,7 +18,8 @@ namespace Volo.Abp.AspNetCore.Mvc.Response
await next();
if (context.HttpContext.Response.StatusCode == (int)HttpStatusCode.OK)
if (context.HttpContext.Response.StatusCode == (int)HttpStatusCode.OK
&& context.Result == null)
{
var returnType = context.ActionDescriptor.GetReturnType();
if (returnType == typeof(Task) || returnType == typeof(void))

@ -47,5 +47,13 @@ namespace Volo.Abp.AspNetCore.Mvc.Response
Response.Redirect("/");
await Task.CompletedTask;
}
[HttpGet]
[Route("TestAsyncMethodWithResultFilter")]
[TestResultFilter]
public async Task TestAsyncMethodWithResultFilter()
{
await Task.CompletedTask;
}
}
}

@ -54,5 +54,13 @@ namespace Volo.Abp.AspNetCore.Mvc.Response
;
result.StatusCode.ShouldBe(HttpStatusCode.Redirect);
}
[Fact]
public async Task Should_Not_Set_No_Content_For_Custom_Result_Filter_Async_Action()
{
var result = await GetResponseAsync("/api/NoContent-Test/TestAsyncMethodWithResultFilter")
;
result.StatusCode.ShouldBe(HttpStatusCode.OK);
}
}
}

@ -0,0 +1,19 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Abstractions;
using Microsoft.AspNetCore.Mvc.Filters;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Volo.Abp.AspNetCore.Mvc.Response
{
public class TestResultFilter : Attribute, IAsyncActionFilter
{
public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
await next();
context.Result = new ObjectResult("TestResultFilter");
}
}
}
Loading…
Cancel
Save