public void Test_Run_Database_Already_Updated() { //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); workspaceService.IncrementMinorVersion(_testConfiguration.WorkspacePath, null); //act var configuration = _testConfiguration.GetFreshConfiguration(); configuration.TargetVersion = "v1.01"; var migrationService = _migrationServiceFactory.Create(configuration.Platform); migrationService.Run(); 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(); migrationService.Run(); 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_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_Run_Fail_Migration_When_DDL_Failed_And_Transactional_DDL_Not_Supported() { //arrange var directoryService = new DirectoryService(); var fileService = new FileService(); var workspaceService = new WorkspaceService(_traceService, directoryService, fileService); workspaceService.Init(_testConfiguration.WorkspacePath); _testDataService.CreateScriptFile(Path.Combine(Path.Combine(_testConfiguration.WorkspacePath, "v0.00"), $"test_v0_00_01.sql"), _testDataService.GetSqlForCreateDbObjectWithError($"test_v0_00_01")); _testDataService.CreateScriptFile(Path.Combine(Path.Combine(_testConfiguration.WorkspacePath, "v0.00"), $"test_v0_00_02.sql"), _testDataService.GetSqlForCreateDbObject($"test_v0_00_02")); _testDataService.CreateScriptFile(Path.Combine(Path.Combine(_testConfiguration.WorkspacePath, "v0.00"), $"test_v0_00_03.sql"), _testDataService.GetSqlForCreateDbObject($"test_v0_00_03")); //act & assert 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(); } //verrity status of migrations var versions = _testDataService.GetAllDbVersions(_testConfiguration.ConnectionString); versions.Count.ShouldBe(1); versions.Count(s => s.Status == Status.Failed).ShouldBe(1); var failedVersion = versions.Single(); failedVersion.Status.ShouldBe(Status.Failed); failedVersion.FailedScriptPath.ShouldBe(Path.Combine(Path.Combine(_testConfiguration.WorkspacePath, "v0.00"), $"test_v0_00_01.sql")); failedVersion.FailedScriptError.ShouldNotBeNullOrEmpty(); }