public async Task RecreateWithOpenConnectionAfterStartup() { /* * could be supported by running the following in wrapper CreateDatabaseFromTemplate * but it is fairly unlikely to happen and not doing the offline saves time in tests * * if db_id('{name}') is not null * begin * alter database [{name}] set single_user with rollback immediate; * alter database [{name}] set multi_user; * alter database [{name}] set offline; * end; */ LocalDbApi.StopAndDelete("RecreateWithOpenConnectionAfterStartup"); DirectoryFinder.Delete("RecreateWithOpenConnectionAfterStartup"); var wrapper = new Wrapper("RecreateWithOpenConnectionAfterStartup", DirectoryFinder.Find("RecreateWithOpenConnectionAfterStartup")); wrapper.Start(timestamp, TestDbBuilder.CreateTable); var connectionString = await wrapper.CreateDatabaseFromTemplate("Simple"); using (var connection = new SqlConnection(connectionString)) { await connection.OpenAsync(); await wrapper.CreateDatabaseFromTemplate("Simple"); wrapper = new Wrapper("RecreateWithOpenConnectionAfterStartup", DirectoryFinder.Find("RecreateWithOpenConnection")); wrapper.Start(timestamp, TestDbBuilder.CreateTable); await wrapper.CreateDatabaseFromTemplate("Simple"); } ObjectApprover.Verify(await wrapper.ReadDatabaseState("Simple")); LocalDbApi.StopInstance("RecreateWithOpenConnectionAfterStartup"); }
public async Task RecreateWithOpenConnection() { var name = "RecreateWithOpenConnection"; LocalDbApi.StopAndDelete(name); DirectoryFinder.Delete(name); Wrapper wrapper = new(s => new SqlConnection(s), name, DirectoryFinder.Find(name)); wrapper.Start(timestamp, TestDbBuilder.CreateTable); var connectionString = await wrapper.CreateDatabaseFromTemplate("Simple"); await using (SqlConnection connection = new(connectionString)) { await connection.OpenAsync(); wrapper = new(s => new SqlConnection(s), name, DirectoryFinder.Find(name)); wrapper.Start(timestamp, TestDbBuilder.CreateTable); await wrapper.CreateDatabaseFromTemplate("Simple"); } await Verifier.Verify(wrapper.ReadDatabaseState("Simple")); LocalDbApi.StopInstance(name); }
public async Task NoFileAndWithInstanceAndNamedDb() { var instanceName = "NoFileAndWithInstanceAndNamedDb"; LocalDbApi.StopAndDelete(instanceName); LocalDbApi.CreateInstance(instanceName); DirectoryFinder.Delete(instanceName); Wrapper wrapper = new(s => new SqlConnection(s), instanceName, DirectoryFinder.Find(instanceName)); wrapper.Start(timestamp, TestDbBuilder.CreateTable); await wrapper.AwaitStart(); await wrapper.CreateDatabaseFromTemplate("Simple"); Thread.Sleep(3000); DirectoryFinder.Delete(instanceName); wrapper = new(s => new SqlConnection(s), instanceName, DirectoryFinder.Find(instanceName)); wrapper.Start(timestamp, TestDbBuilder.CreateTable); await wrapper.AwaitStart(); await wrapper.CreateDatabaseFromTemplate("Simple"); await Verifier.Verify(wrapper.ReadDatabaseState("Simple")); }
public async Task NoFileAndWithInstance() { LocalDbApi.CreateInstance("NoFileAndWithInstance"); DirectoryFinder.Delete("NoFileAndWithInstance"); var instance = new SqlInstance("NoFileAndWithInstance", TestDbBuilder.CreateTable); await AddAndVerifyData(instance); }
public async Task NoFileAndNoInstance() { LocalDbApi.StopAndDelete("NoFileAndNoInstance"); DirectoryFinder.Delete("NoFileAndNoInstance"); var wrapper = new Wrapper("NoFileAndNoInstance", DirectoryFinder.Find("NoFileAndNoInstance")); wrapper.Start(timestamp, TestDbBuilder.CreateTable); await wrapper.CreateDatabaseFromTemplate("Simple"); ObjectApprover.Verify(await wrapper.ReadDatabaseState("Simple")); LocalDbApi.StopInstance("NoFileAndNoInstance"); }
public async Task NoFileAndWithInstance() { LocalDbApi.StopAndDelete("NoFileAndWithInstance"); LocalDbApi.CreateInstance("NoFileAndWithInstance"); DirectoryFinder.Delete("NoFileAndWithInstance"); var wrapper = new Wrapper(s => new SqlConnection(s), "NoFileAndWithInstance", DirectoryFinder.Find("NoFileAndWithInstance")); wrapper.Start(timestamp, TestDbBuilder.CreateTable); await wrapper.AwaitStart(); await wrapper.CreateDatabaseFromTemplate("Simple"); await Verify(await wrapper.ReadDatabaseState("Simple")); LocalDbApi.StopInstance("NoFileAndWithInstance"); }
public async Task NoFileAndNoInstance() { var name = "NoFileAndNoInstance"; LocalDbApi.StopAndDelete(name); DirectoryFinder.Delete(name); Wrapper wrapper = new(s => new SqlConnection(s), name, DirectoryFinder.Find(name)); wrapper.Start(timestamp, TestDbBuilder.CreateTable); await wrapper.CreateDatabaseFromTemplate("Simple"); await Verifier.Verify(wrapper.ReadDatabaseState("Simple")); LocalDbApi.StopInstance(name); }
public async Task RecreateWithOpenConnection() { LocalDbApi.StopAndDelete("RecreateWithOpenConnection"); DirectoryFinder.Delete("RecreateWithOpenConnection"); var wrapper = new Wrapper("RecreateWithOpenConnection", DirectoryFinder.Find("RecreateWithOpenConnection")); wrapper.Start(timestamp, TestDbBuilder.CreateTable); var connectionString = await wrapper.CreateDatabaseFromTemplate("Simple"); using (var connection = new SqlConnection(connectionString)) { await connection.OpenAsync(); wrapper = new Wrapper("RecreateWithOpenConnection", DirectoryFinder.Find("RecreateWithOpenConnection")); wrapper.Start(timestamp, TestDbBuilder.CreateTable); await wrapper.CreateDatabaseFromTemplate("Simple"); } ObjectApprover.Verify(await wrapper.ReadDatabaseState("Simple")); LocalDbApi.StopInstance("RecreateWithOpenConnection"); }