Esempio n. 1
0
    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);
 }