public TDb CreateDbContext(string model, string nameOfConnectionString, ITestOutputHelper?output = null) { if (serviceProvider is null) { ConfigureServices(services); string connectionString = DbConfigurationBuilder <TDb> .GetConnectionString(nameOfConnectionString); services.AddDbContext <TDb>((serviceProvider, options) => { options.UseInternalServiceProvider(serviceProvider); if (model == "SQL") { options.UseSqlServer(connectionString); } if (model == "MEM") { options.UseInMemoryDatabase(connectionString, new InMemoryDatabaseRoot()); } if (model == "MEME") { options.UseInMemoryDatabase(connectionString); } if (model == "LIT") { options.UseSqlite(connectionString); } options.EnableSensitiveDataLogging(); if (output != null) { var provider = new TestOutputLoggerProvider(output); var loggerFactory = new LoggerFactory(new[] { provider }); options.UseLoggerFactory(loggerFactory); } }); serviceProvider = services.BuildServiceProvider(); } TDb?dbContext = serviceProvider.GetRequiredService <TDb>(); return(dbContext); }
public void Setup() { _config = new DbConfig(); _dbConfigurationBuilder = new DbConfigurationBuilder(_config); }