public async Task Returns_true_when_database_exists_and_has_any_tables(bool async, bool ambientTransaction) { using (var testDatabase = MySqlTestStore.GetOrCreate("ExistingTables") .InitializeMySql(null, t => new BloggingContext(t), null)) { var creator = GetDatabaseCreator(testDatabase); using (CreateTransactionScope(ambientTransaction)) { Assert.True(async ? await creator.HasTablesAsyncBase() : creator.HasTablesBase()); } } }
public async Task Throws_when_database_does_not_exist(bool async) { using (var testDatabase = MySqlTestStore.GetOrCreate("NonExistingBlogging")) { var creator = GetDatabaseCreator(testDatabase); if (async) { await Assert.ThrowsAsync <SqlException>(() => creator.DeleteAsync()); } else { Assert.Throws <SqlException>(() => creator.Delete()); } } }
public async Task Throws_if_database_does_not_exist(bool async) { using (var testDatabase = MySqlTestStore.GetOrCreate("NonExisting")) { var creator = GetDatabaseCreator(testDatabase); var errorNumber = async ? (await Assert.ThrowsAsync <SqlException>(() => creator.CreateTablesAsync())).Number : Assert.Throws <SqlException>(() => creator.CreateTables()).Number; if (errorNumber != 233) // skip if no-process transient failure { Assert.Equal( 4060, // Login failed error number errorNumber); } } }
public async Task Creates_physical_database_but_not_tables(bool async, bool ambientTransaction) { using (var testDatabase = MySqlTestStore.GetOrCreate("CreateTest")) { var creator = GetDatabaseCreator(testDatabase); creator.EnsureDeleted(); using (CreateTransactionScope(ambientTransaction)) { if (async) { await creator.CreateAsync(); } else { creator.Create(); } } Assert.True(creator.Exists()); if (testDatabase.ConnectionState != ConnectionState.Open) { await testDatabase.OpenConnectionAsync(); } Assert.Equal( 0, (await testDatabase.QueryAsync <string>( "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'")).Count()); Assert.True( await testDatabase.ExecuteScalarAsync <bool>( string.Concat( "SELECT is_read_committed_snapshot_on FROM sys.databases WHERE name='", testDatabase.Name, "'"))); } }
public async Task Throws_when_database_does_not_exist(bool async) { using (var testDatabase = MySqlTestStore.GetOrCreate("NonExisting")) { var databaseCreator = GetDatabaseCreator(testDatabase); await databaseCreator.ExecutionStrategyFactory.Create().ExecuteAsync( databaseCreator, async creator => { var errorNumber = async ? (await Assert.ThrowsAsync <SqlException>(() => creator.HasTablesAsyncBase())).Number : Assert.Throws <SqlException>(() => creator.HasTablesBase()).Number; if (errorNumber != 233) // skip if no-process transient failure { Assert.Equal( 4060, // Login failed error number errorNumber); } }); } }
public override TestStore GetOrCreate(string storeName) => MySqlTestStore.GetOrCreate(Name, "Northwind.sql");