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}");
                }
            });
        }
Ejemplo n.º 2
0
        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;
 }
Ejemplo n.º 4
0
        public static void PopulateTestData(ProjectsPortifolioDbContext dbContext)
        {
            dbContext.Project.Add(ProjectBuilder.Start().Build());

            dbContext.SaveChanges();
        }
Ejemplo n.º 5
0
 public ProjectReservationRepository(ProjectsPortifolioDbContext ProjectsPortifolioDbContext) : base(ProjectsPortifolioDbContext)
 {
 }
Ejemplo n.º 6
0
 public TestSeed(ProjectsPortifolioDbContext context)
 {
     _context = context;
 }