public static HttpConfiguration ConfigureWebApi(this HttpConfiguration httpConfiguration, IContainer container) { httpConfiguration.Services.Replace(typeof(IHttpControllerTypeResolver), new WebApiControllerTypeResolver()); httpConfiguration.MapHttpAttributeRoutes(new RouteProvider()); httpConfiguration.Routes.Add("NotFoundApi", new HttpRoute("api/{*url}", new HttpRouteValueDictionary(new { controller = "Error", action = "NotFound" }))); httpConfiguration.EnableCors(new EnableCorsAttribute("*", "*", "*")); httpConfiguration.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new Newtonsoft.Json.Converters.StringEnumConverter()); httpConfiguration.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); httpConfiguration.Formatters.JsonFormatter.SerializerSettings.NullValueHandling = NullValueHandling.Ignore; httpConfiguration.DependencyResolver = new AutofacWebApiDependencyResolver(container); var factory = container.Resolve <IValidatorFactory>(); var validationPipeline = new ValidationPipeline(factory); var validationFilter = new FluentValidationWebApiValidationAttribute(validationPipeline); httpConfiguration.Filters.Add(validationFilter); var modelValidationServices = httpConfiguration.Services.GetServices(typeof(ModelValidatorProvider)); foreach (var modelValidationService in modelValidationServices) { httpConfiguration.Services.Remove(typeof(ModelValidatorProvider), modelValidationService); } return(httpConfiguration); }
public async Task Pipeline_should_fail_if_request_is_not_valid( Request request, Mock <IValidator <Request> > validator) { validator.Setup(v => v.ValidateAsync(request, default)) .ReturnsAsync( new ValidationResult( new List <ValidationFailure>() { new ValidationFailure("", "") })); var handler = new ValidationPipeline <Request, Response>(validator.Object); Func <Task <Response> > test = () => handler.Handle(request, default, Next);