public void Test_Bulk_Import_With_NonDefault_Schema_Destination_Table() { //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, $"__CreateSchema.sql"), _testDataService.GetSqlForCreateDbSchema("TestSchema")); _testDataService.CreateScriptFile(Path.Combine(v100Directory, $"TestCsvWithSchema.sql"), _testDataService.GetSqlForCreateBulkTable("TestSchema.TestCsv")); //act var migrationService = _migrationServiceFactory.Create(_testConfiguration.Platform); migrationService.Initialize(_testConfiguration.ConnectionString); migrationService.Run(_testConfiguration.WorkspacePath, "v1.00", autoCreateDatabase: true); //assert _testDataService.CheckIfDbObjectExist(_testConfiguration.ConnectionString, "TestSchema.TestCsv").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"), "TestCsv.csv"), Path.Combine(v101Directory, "TestSchema.TestCsv.csv")); //act - bulk load csv files migrationService.Run(_testConfiguration.WorkspacePath, "v1.01", autoCreateDatabase: true); //assert _testDataService.CheckIfDbObjectExist(_testConfiguration.ConnectionString, "TestSchema.TestCsv").ShouldBeTrue(); var results = _testDataService.GetBulkTestData(_testConfiguration.ConnectionString, "TestSchema.TestCsv"); var testDataRows = new List <BulkTestDataRow> { new BulkTestDataRow { FirstName = "Jack", LastName = "Poole", BirthDate = new DateTime(1980, 1, 1) }, new BulkTestDataRow { FirstName = "Diana", LastName = "Churchill", BirthDate = new DateTime(1980, 1, 1) }, new BulkTestDataRow { FirstName = "Rebecca", LastName = "Lyman", BirthDate = new DateTime(1980, 1, 1) }, new BulkTestDataRow { FirstName = "Sam", LastName = "Macdonald", BirthDate = new DateTime(1980, 1, 1) }, new BulkTestDataRow { FirstName = "Matt", LastName = "Paige", 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_Bulk_Import_With_NonDefault_Schema_Destination_Table() { //arrange - pre-create destination bulk tables var directoryService = new DirectoryService(); var fileService = new FileService(); var workspaceService = new WorkspaceService(_traceService, directoryService, fileService); workspaceService.Init(_testConfiguration.WorkspacePath); workspaceService.IncrementMajorVersion(_testConfiguration.WorkspacePath, null); string v100Directory = Path.Combine(_testConfiguration.WorkspacePath, "v1.00"); _testDataService.CreateScriptFile(Path.Combine(v100Directory, $"__CreateSchema.sql"), _testDataService.GetSqlForCreateDbSchema(TEST_DBOBJECTS.TestSchema)); _testDataService.CreateScriptFile(Path.Combine(v100Directory, $"TestCsvWithSchema.sql"), _testDataService.GetSqlForCreateBulkTable($"{TEST_DBOBJECTS.TestSchema}.{TEST_DBOBJECTS.TestCsv}")); //act var configuration = _testConfiguration.GetFreshConfiguration(); configuration.TargetVersion = "v1.00"; var migrationService = _migrationServiceFactory.Create(configuration.Platform); migrationService.Run(); //assert _testDataService.CheckIfDbObjectExist(_testConfiguration.ConnectionString, "TestSchema.TestCsv").ShouldBeTrue(); //arrange - add new version with csv files workspaceService.IncrementMinorVersion(_testConfiguration.WorkspacePath, null); string v101Directory = Path.Combine(_testConfiguration.WorkspacePath, "v1.01"); File.Copy(Path.Combine(Path.Combine(Environment.CurrentDirectory, "Data"), "TestCsv.csv"), Path.Combine(v101Directory, "TestSchema.TestCsv.csv")); //act - bulk load csv files configuration.TargetVersion = "v1.01"; migrationService.Run(); //assert _testDataService.CheckIfDbObjectExist(_testConfiguration.ConnectionString, $"{TEST_DBOBJECTS.TestSchema}.{TEST_DBOBJECTS.TestCsv}").ShouldBeTrue(); var results = _testDataService.GetBulkTestData(_testConfiguration.ConnectionString, $"{TEST_DBOBJECTS.TestSchema}.{TEST_DBOBJECTS.TestCsv}"); var testDataRows = new List <BulkTestDataRow> { new BulkTestDataRow { FirstName = "Jack", LastName = "Poole", BirthDate = "1980-01-01" }, new BulkTestDataRow { FirstName = "Diana", LastName = "Churchill", BirthDate = "1980-01-01" }, new BulkTestDataRow { FirstName = "Rebecca", LastName = "Lyman", BirthDate = "1980-01-01" }, new BulkTestDataRow { FirstName = "Sam", LastName = "Macdonald", BirthDate = "1980-01-01" }, new BulkTestDataRow { FirstName = "Matt", LastName = "Paige", BirthDate = "1980-01-01" }, }; results.Count.ShouldBe(5); testDataRows.All(t => results.Exists(r => t.FirstName == r.FirstName && t.LastName == r.LastName && t.BirthDate == r.BirthDate )).ShouldBeTrue(); }