// It's internal because `Umbraco.Core.Persistence.LocalDb` is internal internal LocalDbTestDatabase(TestDatabaseSettings settings, ILoggerFactory loggerFactory, LocalDb localDb, IUmbracoDatabaseFactory dbFactory) { _loggerFactory = loggerFactory; _databaseFactory = dbFactory; _settings = settings; _localDb = localDb; s_filesPath = settings.FilesPath; var counter = 0; var schema = Enumerable.Range(0, _settings.SchemaDatabaseCount) .Select(x => TestDbMeta.CreateWithoutConnectionString($"{DatabaseName}-{++counter}", false)); var empty = Enumerable.Range(0, _settings.EmptyDatabasesCount) .Select(x => TestDbMeta.CreateWithoutConnectionString($"{DatabaseName}-{++counter}", true)); _testDatabases = schema.Concat(empty).ToList(); s_localDbInstance = _localDb.GetInstance(InstanceName); if (s_localDbInstance != null) { return; } if (_localDb.CreateInstance(InstanceName) == false) { throw new Exception("Failed to create a LocalDb instance."); } s_localDbInstance = _localDb.GetInstance(InstanceName); }
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(); }
public SqlServerTestDatabase(TestDatabaseSettings settings, ILoggerFactory loggerFactory, IUmbracoDatabaseFactory databaseFactory) { _loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory)); _databaseFactory = databaseFactory ?? throw new ArgumentNullException(nameof(databaseFactory)); _settings = settings; var counter = 0; var schema = Enumerable.Range(0, _settings.SchemaDatabaseCount) .Select(x => TestDbMeta.CreateWithMasterConnectionString($"{DatabaseName}-{++counter}", false, _settings.SQLServerMasterConnectionString)); var empty = Enumerable.Range(0, _settings.EmptyDatabasesCount) .Select(x => TestDbMeta.CreateWithMasterConnectionString($"{DatabaseName}-{++counter}", true, _settings.SQLServerMasterConnectionString)); _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 {
public static void Db(string connectionString, string providerName) { //seed data DbSettings = DependencyResolver.Resolve <IDatabaseSettings>() as TestDatabaseSettings; DbSettings.SetSettings(connectionString, providerName); }