Adding tests for ValidationActionFilter
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
using BasicDotnetTemplate.MainProject.Models.Api.Base;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Mvc.Filters;
|
||||
using System.Threading.Tasks;
|
||||
@@ -12,15 +13,27 @@ namespace BasicDotnetTemplate.MainProject.Core.Filters
|
||||
{
|
||||
if (!context.ModelState.IsValid)
|
||||
{
|
||||
context.Result = new BadRequestObjectResult(new { message = _requestNotWellFormedMessage, errors = context.ModelState });
|
||||
context.Result = new BadRequestObjectResult(new ValidationError
|
||||
{
|
||||
Message = _requestNotWellFormedMessage,
|
||||
Errors = context.ModelState.Where(m =>
|
||||
m.Value != null && m.Value.Errors.Any())
|
||||
.ToDictionary(
|
||||
m => m.Key,
|
||||
m => m.Value!.Errors.Select(e => e.ErrorMessage).ToList()
|
||||
)
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
var requestBody = context.ActionArguments.Values.FirstOrDefault(arg => arg != null && !arg.GetType().IsPrimitive && !(arg is string));
|
||||
var requestBody = context.ActionArguments.Values.FirstOrDefault(arg => arg != null && !arg.GetType().IsPrimitive && arg is not string);
|
||||
|
||||
if (requestBody == null)
|
||||
{
|
||||
context.Result = new BadRequestObjectResult(new { message = _requestNotWellFormedMessage });
|
||||
context.Result = new BadRequestObjectResult(new ValidationError
|
||||
{
|
||||
Message = _requestNotWellFormedMessage
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user