public void Test_Create_Multiline_Script_With_Error_Must_Rollback() { //arrange var localVersionService = new LocalVersionService(_traceService); localVersionService.Init(_testConfiguration.WorkspacePath); localVersionService.IncrementMajorVersion(_testConfiguration.WorkspacePath, null); string sqlFileName = "Test_Single_Run_Failed_Script_Must_Rollback"; string sqlObjectName1 = "Test_Object_1"; string sqlObjectName2 = "Test_Object_2"; _testDataService.CreateScriptFile(Path.Combine(Path.Combine(_testConfiguration.WorkspacePath, "v1.00"), $"{sqlFileName}.sql"), _testDataService.GetSqlForMultilineWithError(sqlObjectName1, sqlObjectName2)); //act try { var migrationService = _migrationServiceFactory.Create(_testConfiguration.Platform); migrationService.Initialize(_testConfiguration.ConnectionString); migrationService.Run(_testConfiguration.WorkspacePath, "v1.00", autoCreateDatabase: true); } catch (Exception ex) { //used try/catch this instead of Assert.ThrowsException because different vendors //throws different exception type and message content ex.Message.ShouldNotBeNullOrEmpty(); } //assert _testDataService.GetCurrentDbVersion(_testConfiguration.ConnectionString).ShouldBeNull(); _testDataService.CheckIfDbObjectExist(_testConfiguration.ConnectionString, $"{sqlObjectName1}").ShouldBeFalse(); _testDataService.CheckIfDbObjectExist(_testConfiguration.ConnectionString, $"{sqlObjectName2}").ShouldBeFalse(); }
public void Test_Create_Multiline_Script_With_Error_Must_Rollback() { //arrange 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 sqlFileName = "Test_Single_Run_Failed_Script_Must_Rollback"; string sqlObjectName1 = TEST_DBOBJECTS.DB_OBJECT_1; string sqlObjectName2 = TEST_DBOBJECTS.DB_OBJECT_2; _testDataService.CreateScriptFile(Path.Combine(Path.Combine(_testConfiguration.WorkspacePath, "v0.00"), $"{sqlFileName}.sql"), _testDataService.GetSqlForMultilineWithError(sqlObjectName1, sqlObjectName2)); //act try { var configuration = _testConfiguration.GetFreshConfiguration(); var migrationService = _migrationServiceFactory.Create(configuration.Platform); migrationService.Run(); } catch (Exception ex) { //used try/catch this instead of Assert.ThrowsException because different vendors //throws different exception type and message content ex.Message.ShouldNotBeNullOrEmpty(); } //assert _testDataService.GetCurrentDbVersion(_testConfiguration.ConnectionString).ShouldBeNull(); _testDataService.CheckIfDbObjectExist(_testConfiguration.ConnectionString, $"{sqlObjectName1}").ShouldBeFalse(); _testDataService.CheckIfDbObjectExist(_testConfiguration.ConnectionString, $"{sqlObjectName2}").ShouldBeFalse(); }