public void Login_succes() { // Arrange var req = new Mock <HttpRequest>(); var httpContext = new Mock <HttpContext>(); httpContext.Setup(x => x.Request).Returns(req.Object); var httpContextAccessor = new Mock <IHttpContextAccessor>(); httpContextAccessor.Setup(x => x.HttpContext).Returns(httpContext.Object); Func <IServiceCollection, IServiceProvider> applicationServices = services => { services.AddInstance(httpContextAccessor.Object); services.AddEntityFramework() .AddInMemoryDatabase() .AddDbContext <ApplicationDbContext>(); services.AddMvc(); services.AddIdentity <ApplicationUser, IdentityRole>(options => { options.Password.RequireDigit = false; options.Password.RequiredLength = 4; options.Password.RequireLowercase = false; options.Password.RequireUppercase = false; options.Password.RequireNonLetterOrDigit = false; options.SignIn.RequireConfirmedEmail = true; options.User.RequireUniqueEmail = true; }) .AddEntityFrameworkStores <ApplicationDbContext>() .AddDefaultTokenProviders(); services.AddSingleton <IEmailSender, MessageServices>(); services.AddSingleton <ISmsSender, MessageServices>(); services.AddTransient <IEmailTemplate, EmailTemplate>(); services.AddTransient <AccountController, AccountController>(); LocalizationServiceCollectionJsonExtensions.AddLocalization(services); return(services.BuildServiceProvider()); }; var buildServices = InitializeServices(typeof(StartupTest).Assembly, applicationServices); var serviceProvider = buildServices(new ServiceCollection()); //BuildSampleData(serviceProvider); var accountController = serviceProvider.GetRequiredService <AccountController>(); var response = accountController.Login() as ViewResult; var actionContext = GetActionContext(); //await response.ExecuteResultAsync(b.ActionContext); }
protected override void AddAdditionalServices(IServiceCollection services) { services.AddEntityFramework() .AddInMemoryDatabase() .AddDbContext <ApplicationDbContext>(o => o.UseInMemoryDatabase()); services.AddIdentity <ApplicationUser, IdentityRole>(options => { options.SignIn.RequireConfirmedEmail = true; }) .AddEntityFrameworkStores <ApplicationDbContext>() .AddDefaultTokenProviders(); services .AddMvc(m => { m.ModelMetadataDetailsProviders.Add(new AdditionalValuesMetadataProvider()); }); LocalizationServiceCollectionJsonExtensions.AddLocalization(services); // Add application services. services.AddSingleton <IEmailSender, TestMessageServices>(); services.AddSingleton <ISmsSender, MessageServices>(); services.AddTransient <IEmailTemplate, EmailTemplate>(); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { // Add framework services. services.AddEntityFramework() .AddSqlServer() .AddDbContext <ApplicationDbContext>(options => options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"])); services.AddIdentity <ApplicationUser, IdentityRole>(options => { options.Tokens.ChangeEmailTokenProvider = ""; options.Password.RequireDigit = false; options.Password.RequiredLength = 4; options.Password.RequireLowercase = false; options.Password.RequireUppercase = false; options.Password.RequireNonLetterOrDigit = false; options.SignIn.RequireConfirmedEmail = true; options.User.RequireUniqueEmail = true; }) .AddEntityFrameworkStores <ApplicationDbContext>() .AddDefaultTokenProviders(); LocalizationServiceCollectionJsonExtensions.AddLocalization(services); //services.TryAddTransient<IMvcRazorHost, MyMvcRazorHost>(); services .AddMvc(m => { m.ModelMetadataDetailsProviders.Add(new AdditionalValuesMetadataProvider()); }) .AddViewLocalization(options => options.ResourcesPath = "Resources") //.AddDataAnnotationsLocalization() ; // Add application services. services.Configure <MessageServicesOptions>(Configuration.GetSection("mailSettings")); services.AddSingleton <IEmailSender, MessageServices>(); services.AddSingleton <ISmsSender, MessageServices>(); services.AddTransient <IEmailTemplate, EmailTemplate>(); }