public void Test_Verify() { //arrange var localVersionService = new LocalVersionService(_traceService); localVersionService.Init(_testConfiguration.WorkspacePath); localVersionService.IncrementMajorVersion(_testConfiguration.WorkspacePath, null); _testDataService.CreateScriptFile(Path.Combine(Path.Combine(_testConfiguration.WorkspacePath, "v1.00"), $"test_v1_00.sql"), _testDataService.GetSqlForCreateDbObject($"test_v1_00")); localVersionService.IncrementMinorVersion(_testConfiguration.WorkspacePath, null); _testDataService.CreateScriptFile(Path.Combine(Path.Combine(_testConfiguration.WorkspacePath, "v1.01"), $"test_v1_01.sql"), _testDataService.GetSqlForCreateDbObject($"test_v1_01")); var migrationService = _migrationServiceFactory.Create(_testConfiguration.Platform); migrationService.Initialize(_testConfiguration.ConnectionString); migrationService.Run(_testConfiguration.WorkspacePath, "v1.01", autoCreateDatabase: true); localVersionService.IncrementMinorVersion(_testConfiguration.WorkspacePath, null); _testDataService.CreateScriptFile(Path.Combine(Path.Combine(_testConfiguration.WorkspacePath, "v1.02"), $"test_v1_02.sql"), _testDataService.GetSqlForCreateDbObject($"test_v1_02")); //act migrationService.Run(_testConfiguration.WorkspacePath, "v1.02", autoCreateDatabase: false, verifyOnly: true); //assert _testDataService.CheckIfDbObjectExist(_testConfiguration.ConnectionString, "test_v1_00").ShouldBeTrue(); _testDataService.CheckIfDbObjectExist(_testConfiguration.ConnectionString, "test_v1_01").ShouldBeTrue(); _testDataService.CheckIfDbObjectExist(_testConfiguration.ConnectionString, "test_v1_02").ShouldBeFalse(); }
public void Test_Run_Ok_With_Explicit_Transaction() { //arrange var localVersionService = new LocalVersionService(_traceService); localVersionService.Init(_testConfiguration.WorkspacePath); localVersionService.IncrementMajorVersion(_testConfiguration.WorkspacePath, null); var v1_00_transactionDirectory = Directory.CreateDirectory(Path.Combine(_testConfiguration.WorkspacePath, "v1.00", "_transaction")).FullName; _testDataService.CreateScriptFile(Path.Combine(v1_00_transactionDirectory, $"test_v1_00.sql"), _testDataService.GetSqlForCreateDbObject($"test_v1_00")); localVersionService.IncrementMinorVersion(_testConfiguration.WorkspacePath, null); var v1_01_transactionDirectory = Directory.CreateDirectory(Path.Combine(_testConfiguration.WorkspacePath, "v0.01", "_transaction")).FullName; _testDataService.CreateScriptFile(Path.Combine(Path.Combine(_testConfiguration.WorkspacePath, "v1.01"), $"test_v1_01.sql"), _testDataService.GetSqlForCreateDbObject($"test_v1_01")); localVersionService.IncrementMinorVersion(_testConfiguration.WorkspacePath, null); var v1_02_transactionDirectory = Directory.CreateDirectory(Path.Combine(_testConfiguration.WorkspacePath, "v0.02", "_transaction")).FullName; _testDataService.CreateScriptFile(Path.Combine(Path.Combine(_testConfiguration.WorkspacePath, "v1.02"), $"test_v1_02.sql"), _testDataService.GetSqlForCreateDbObject($"test_v1_02")); //act var migrationService = _migrationServiceFactory.Create(_testConfiguration.Platform); migrationService.Initialize(_testConfiguration.ConnectionString); migrationService.Run(_testConfiguration.WorkspacePath, autoCreateDatabase: true); //assert _testDataService.CheckIfDbObjectExist(_testConfiguration.ConnectionString, "test_v1_00").ShouldBeTrue(); _testDataService.CheckIfDbObjectExist(_testConfiguration.ConnectionString, "test_v1_01").ShouldBeTrue(); _testDataService.CheckIfDbObjectExist(_testConfiguration.ConnectionString, "test_v1_02").ShouldBeTrue(); }
public void Test_Get_Latest_Version() { //act var localVersionService = new LocalVersionService(_traceService); localVersionService.Init(_testConfiguration.WorkspacePath); localVersionService.IncrementMajorVersion(_testConfiguration.WorkspacePath, null); localVersionService.IncrementMinorVersion(_testConfiguration.WorkspacePath, null); localVersionService.IncrementMinorVersion(_testConfiguration.WorkspacePath, null); //assert localVersionService.GetLatestVersion(_testConfiguration.WorkspacePath).ShouldBe("v1.02"); }
public void Test_Run_Database_Already_Updated() { //arrange var localVersionService = new LocalVersionService(_traceService); localVersionService.Init(_testConfiguration.WorkspacePath); localVersionService.IncrementMajorVersion(_testConfiguration.WorkspacePath, null); localVersionService.IncrementMinorVersion(_testConfiguration.WorkspacePath, null); //act var migrationService = _migrationServiceFactory.Create(_testConfiguration.Platform); migrationService.Initialize(_testConfiguration.ConnectionString); migrationService.Run(_testConfiguration.WorkspacePath, "v1.01", autoCreateDatabase: true); var versions = _testDataService.GetAllDbVersions(_testConfiguration.ConnectionString); versions.Count.ShouldBe(3); versions[0].Version.ShouldBe("v0.00"); versions[1].Version.ShouldBe("v1.00"); versions[2].Version.ShouldBe("v1.01"); migrationService.Run(_testConfiguration.WorkspacePath, "v1.01", autoCreateDatabase: true); migrationService.Run(_testConfiguration.WorkspacePath, "v1.01", autoCreateDatabase: true); versions.Count.ShouldBe(3); versions[0].Version.ShouldBe("v0.00"); versions[1].Version.ShouldBe("v1.00"); versions[2].Version.ShouldBe("v1.01"); }
public void Test_Bulk_Import_With_Null_Word_Value() { //arrange - prepare bulk destination table var localVersionService = new LocalVersionService(_traceService); localVersionService.Init(_testConfiguration.WorkspacePath); localVersionService.IncrementMajorVersion(_testConfiguration.WorkspacePath, null); string v100Directory = Path.Combine(_testConfiguration.WorkspacePath, "v1.00"); _testDataService.CreateScriptFile(Path.Combine(v100Directory, $"TestCsvNullWordValue.sql"), _testDataService.GetSqlForCreateBulkTable("TestCsvNullWordValue")); //act var migrationService = _migrationServiceFactory.Create(_testConfiguration.Platform); migrationService.Initialize(_testConfiguration.ConnectionString); migrationService.Run(_testConfiguration.WorkspacePath, "v1.00", autoCreateDatabase: true); //assert _testDataService.CheckIfDbObjectExist(_testConfiguration.ConnectionString, "TestCsvNullWordValue").ShouldBeTrue(); //arrange - add new minor version with csv files localVersionService.IncrementMinorVersion(_testConfiguration.WorkspacePath, null); string v101Directory = Path.Combine(_testConfiguration.WorkspacePath, "v1.01"); File.Copy(Path.Combine(Path.Combine(Environment.CurrentDirectory, "Core"), "TestCsvNullWordValue.csv"), Path.Combine(v101Directory, "TestCsvNullWordValue.csv")); //act migrationService.Run(_testConfiguration.WorkspacePath, "v1.01", autoCreateDatabase: true); //assert _testDataService.CheckIfDbObjectExist(_testConfiguration.ConnectionString, "TestCsvNullWordValue").ShouldBeTrue(); var results = _testDataService.GetBulkTestData(_testConfiguration.ConnectionString, "TestCsvNullWordValue"); var testDataRows = new List <BulkTestDataRow> { new BulkTestDataRow { FirstName = "Jack", LastName = "Poole", BirthDate = null }, new BulkTestDataRow { FirstName = "Diana", LastName = "Churchill", BirthDate = null }, new BulkTestDataRow { FirstName = "Rebecca", LastName = "Lyman", BirthDate = null }, new BulkTestDataRow { FirstName = "Sam", LastName = "Macdonald", BirthDate = null }, new BulkTestDataRow { FirstName = "Matt", LastName = "Paige", BirthDate = null }, }; results.Count.ShouldBe(5); testDataRows.All(t => results.Exists(r => t.FirstName == r.FirstName && t.LastName == r.LastName && t.BirthDate == r.BirthDate )).ShouldBeTrue(); }
public void Test_Bulk_Import_With_Utf8() { //arrange - pre-create destination bulk tables var localVersionService = new LocalVersionService(_traceService); localVersionService.Init(_testConfiguration.WorkspacePath); localVersionService.IncrementMajorVersion(_testConfiguration.WorkspacePath, null); string v100Directory = Path.Combine(_testConfiguration.WorkspacePath, "v1.00"); _testDataService.CreateScriptFile(Path.Combine(v100Directory, $"TestCsvUtf8.sql"), _testDataService.GetSqlForCreateBulkTable("TestCsvUtf8")); //act var migrationService = _migrationServiceFactory.Create(_testConfiguration.Platform); migrationService.Initialize(_testConfiguration.ConnectionString); migrationService.Run(_testConfiguration.WorkspacePath, "v1.00", autoCreateDatabase: true); //assert _testDataService.CheckIfDbObjectExist(_testConfiguration.ConnectionString, "TestCsvUtf8").ShouldBeTrue(); //arrange - add new version with csv files localVersionService.IncrementMinorVersion(_testConfiguration.WorkspacePath, null); string v101Directory = Path.Combine(_testConfiguration.WorkspacePath, "v1.01"); File.Copy(Path.Combine(Path.Combine(Environment.CurrentDirectory, "Core"), "TestCsvUtf8.csv"), Path.Combine(v101Directory, "TestCsvUtf8.csv")); //act - bulk load csv files migrationService.Run(_testConfiguration.WorkspacePath, "v1.01", autoCreateDatabase: true); //assert var results = _testDataService.GetBulkTestData(_testConfiguration.ConnectionString, "TestCsvUtf8"); var testDataRows = new List <BulkTestDataRow> { new BulkTestDataRow { FirstName = "Allan", LastName = "Søgaard", BirthDate = new DateTime(1980, 1, 1) }, new BulkTestDataRow { FirstName = "Martin", LastName = "Bæk", BirthDate = new DateTime(1980, 1, 1) }, new BulkTestDataRow { FirstName = "Gitte", LastName = "Jürgensen", BirthDate = new DateTime(1980, 1, 1) }, new BulkTestDataRow { FirstName = "Maria", LastName = "Østergård", BirthDate = new DateTime(1980, 1, 1) }, new BulkTestDataRow { FirstName = "Peter", LastName = "Langkjær", BirthDate = new DateTime(1980, 1, 1) }, }; results.Count.ShouldBe(5); testDataRows.All(t => results.Exists(r => t.FirstName == r.FirstName && t.LastName == r.LastName && t.BirthDate == r.BirthDate )).ShouldBeTrue(); }
public void Test_Vnext_Minor_Version() { //act var localVersionService = new LocalVersionService(_traceService); localVersionService.Init(_testConfiguration.WorkspacePath); localVersionService.IncrementMinorVersion(_testConfiguration.WorkspacePath, null); //assert Directory.Exists(Path.Combine(_testConfiguration.WorkspacePath, "v0.01")).ShouldBe(true); }
public void Test_Run_With_AutocreateDB() { //arrange var localVersionService = new LocalVersionService(_traceService); localVersionService.Init(_testConfiguration.WorkspacePath); localVersionService.IncrementMajorVersion(_testConfiguration.WorkspacePath, null); localVersionService.IncrementMinorVersion(_testConfiguration.WorkspacePath, null); //act var migrationService = _migrationServiceFactory.Create(_testConfiguration.Platform); migrationService.Initialize(_testConfiguration.ConnectionString); migrationService.Run(_testConfiguration.WorkspacePath, "v1.01", autoCreateDatabase: true); //assert _testDataService.CheckIfDbExist(_testConfiguration.ConnectionString).ShouldBeTrue(); }