protected override void ConfigureWebHost(IWebHostBuilder builder) { builder.ConfigureServices(services => { // Create a new service provider. var serviceProvider = new ServiceCollection() .AddEntityFrameworkInMemoryDatabase() .BuildServiceProvider(); // Add a database context (AppDbContext) using an in-memory database for testing. services.AddDbContext <ProjectsPortifolioDbContext>(options => { options.UseInMemoryDatabase("InMemoryAppDb"); //options.UseSqlServer("Server=localhost;Database=ProjectsDB;Trusted_Connection=True;MultipleActiveResultSets=true"); options.UseInternalServiceProvider(serviceProvider); }); // Build the service provider. var sp = services.BuildServiceProvider(); // Create a scope to obtain a reference to the database contexts //using (var scope = sp.CreateScope()) //{ var scope = sp.CreateScope(); var scopedServices = scope.ServiceProvider; appDb = scopedServices.GetRequiredService <ProjectsPortifolioDbContext>(); var logger = scopedServices.GetRequiredService <ILogger <CustomWebApplicationFactory <TStartup> > >(); // Ensure the database is created. appDb.Database.EnsureCreated(); try { if (!appDb.Project.Any()) { SeedData.PopulateTestData(appDb); } } catch (Exception ex) { logger.LogError(ex, "An error occurred seeding the " + "database with test messages. Error: {ex.Message}"); } }); }
public DatabaseFixture() { _appSettings = new ConfigurationBuilder() .AddJsonFile("appsettings.json") .Build(); _connectionString = _appSettings.GetValue <string>("AppSettings:ConnectionString"); var serviceProvider = new ServiceCollection() .AddEntityFrameworkInMemoryDatabase() .BuildServiceProvider(); var options = new DbContextOptionsBuilder <ProjectsPortifolioDbContext>() .UseInMemoryDatabase(_connectionString) .UseInternalServiceProvider(serviceProvider) .Options; Context = new ProjectsPortifolioDbContext(options); Seeder = new TestSeed(Context); Seeder.RunSeed(); }
public RepositoryBase(ProjectsPortifolioDbContext ProjectsPortifolioDbContext) { _context = ProjectsPortifolioDbContext; }
public static void PopulateTestData(ProjectsPortifolioDbContext dbContext) { dbContext.Project.Add(ProjectBuilder.Start().Build()); dbContext.SaveChanges(); }
public ProjectReservationRepository(ProjectsPortifolioDbContext ProjectsPortifolioDbContext) : base(ProjectsPortifolioDbContext) { }
public TestSeed(ProjectsPortifolioDbContext context) { _context = context; }