public static T CreateController <T>(this TestApplication app) where T : ControllerBase { var httpContext = app.GetService <IHttpContextFactory>().Create(new DefaultHttpContext().Features); httpContext.User = app.User; var routeData = new RouteData(); routeData.Routers.Add(new FakeRoute(app.GetService <IInlineConstraintResolver>())); var actionContext = new ActionContext( httpContext, routeData, new ControllerActionDescriptor { ControllerTypeInfo = typeof(T).GetTypeInfo() }); var actionContextAccessor = app.GetService <IActionContextAccessor>(); if (actionContextAccessor != null) { actionContextAccessor.ActionContext = actionContext; } return(app.GetService <IControllerFactory>().CreateController(new ControllerContext(actionContext)) as T); }
//public static AdminUser MockAdminUser(this TestApplication app) //{ // var adminUserRepo = app.GetService<IRepository<AdminUser>>(); // var adminUserService = app.GetService<IAdminUserService>(); // var adminUser = new AdminUser // { // CreatedAtUtc = DateTime.UtcNow.AddDays(-1), // Username = "******", // HashedPassword = adminUserService.HashPassword("11111A") // }; // adminUserRepo.Save(adminUser); // var token = adminUserService.IssueJwtToken(adminUser); // var options = app.GetService<IOptionsMonitor<JwtBearerOptions>>().Get("Bearer"); // var identity = options.SecurityTokenValidators // .First() // .ValidateToken(token.TokenString, options.TokenValidationParameters, out _); // app.User = identity; // return adminUser; //} public static ModelStateDictionary ValidateModel(this TestApplication app, object model) { var validator = app.GetService <IObjectModelValidator>(); var actionContext = new ActionContext(); validator.Validate(actionContext, null, string.Empty, model); return(actionContext.ModelState); }