public async Task HttpOkObjectResult_SetsStatusCode(object value) { // Arrange var result = new OkObjectResult(value); var httpContext = new DefaultHttpContext { RequestServices = CreateServices(), }; var actionContext = new ActionContext(httpContext, new RouteData(), new ActionDescriptor()); // Act await result.ExecuteResultAsync(actionContext); // Assert Assert.Equal(StatusCodes.Status200OK, httpContext.Response.StatusCode); }
public async Task Execute(HttpContext context) { RouteData routeData = context.GetRouteData(); var tasks = _appenders.Select((a, i) => { // Create binder for the tempalte var templateBinder = new TemplateBinder( context.RequestServices.GetRequiredService <UrlEncoder>(), context.RequestServices.GetRequiredService <ObjectPool <UriBuildingContext> >(), _routeTemplates[i].Item2, null); // Transform the uri Uri fullUri = _routeTemplates[i].Item1 ?? context.Request.GetUri(); string url = templateBinder.BindValues(new RouteValueDictionary(routeData.Values)); var ub = new UriBuilder(fullUri); ub.Path = url; // Make the request return(a.GetAsync(ub.ToString(), context.RequestAborted)); }); // Wait for answer from all requests IAppenderResult[] results = await Task.WhenAll(tasks); // Merge reults object result = MergeResults(results); // Write output using formatters var actionContext = new ActionContext { HttpContext = context, RouteData = routeData }; var objectResult = new OkObjectResult(result); await objectResult.ExecuteResultAsync(actionContext); }