public SqliteTestDatabase(TestDatabaseSettings settings, TestUmbracoDatabaseFactoryProvider dbFactoryProvider, ILoggerFactory loggerFactory) { _settings = settings ?? throw new ArgumentNullException(nameof(settings)); _dbFactoryProvider = dbFactoryProvider; _databaseFactory = dbFactoryProvider.Create(); _loggerFactory = loggerFactory; var schema = Enumerable.Range(0, _settings.SchemaDatabaseCount) .Select(x => CreateSqLiteMeta(false)); var empty = Enumerable.Range(0, _settings.EmptyDatabasesCount) .Select(x => CreateSqLiteMeta(true)); _testDatabases = schema.Concat(empty).ToList(); }
/// <summary> /// Creates a TestDatabase instance /// </summary> /// <remarks> /// SQL Server setup requires configured master connection string & privileges to create database. /// </remarks> /// <example> /// <code> /// # SQL Server Environment variable setup /// $ export Tests__Database__DatabaseType="SqlServer" /// $ export Tests__Database__SQLServerMasterConnectionString="Server=localhost,1433; User Id=sa; Password=MySuperSecretPassword123!;" /// </code> /// </example> /// <example> /// <code> /// # Docker cheat sheet /// $ docker run -e 'ACCEPT_EULA=Y' -e "SA_PASSWORD=MySuperSecretPassword123!" -e 'MSSQL_PID=Developer' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2017-latest-ubuntu /// </code> /// </example> public static ITestDatabase Create(TestDatabaseSettings settings, TestUmbracoDatabaseFactoryProvider dbFactory, ILoggerFactory loggerFactory) => settings.DatabaseType switch {