protected void ApplyChangeScript(ChangeScript script) { ICollection<string> statements = this.splitter.Split(script.GetContent()); int i = 0; foreach (var statement in statements) { try { if (statements.Count > 1) { this.infoTextWriter.WriteLine(" -> statement " + (i + 1) + " of " + statements.Count + "..."); } this.queryExecuter.Execute(statement); i++; } catch (DbException e) { throw new ChangeScriptFailedException(e, script, i + 1, statement); } } }
public void TestToStringReturnsASensibleValue() { FileInfo file = new FileInfo("abc.txt"); ChangeScript changeScript = new ChangeScript(5, file); Assert.AreEqual("#5: abc.txt", changeScript.ToString()); }
/// <summary> /// Executa um determinado script passando um objeto ChangeScript e seu respectivo conteúdo SQL /// </summary> /// <param name="changeScript"></param> /// <param name="scriptContent"></param> public void Executar(ChangeScript changeScript, string scriptContent) { QueryExecuter.Open(); var criarChangeLog = VerificarSeDeveCriarTabelaChangeLog(); DirectToDbApplier.ApplyScriptContent(changeScript, scriptContent, criarChangeLog); QueryExecuter.Close(); }
public ChangeScriptFailedException(DbException cause, ChangeScript script, int statement, string executedSql) : base(cause) { this.script = script; this.statement = statement; this.executedSql = executedSql; }
public void TestChangeScriptsNaturallyOrderById() { ChangeScript one = new ChangeScript(1); ChangeScript two = new ChangeScript(2); Assert.IsTrue(one.CompareTo(two) < 1); Assert.IsTrue(two.CompareTo(one) >= 1); }
public void ReturnsAllScannedScripts() { var scriptOne = new ChangeScript("2.0.0", 1); var scriptTwo = new ChangeScript("2.0.0", 2); var scannerOne = new Mock <IScriptScanner>(); scannerOne.Setup(s => s.GetChangeScripts()).Returns(new List <ChangeScript> { scriptOne }); var scannerTwo = new Mock <IScriptScanner>(); scannerTwo.Setup(s => s.GetChangeScripts()).Returns(new List <ChangeScript> { scriptTwo }); var allScriptScanner = new AllScriptScanner(scannerOne.Object, scannerTwo.Object); var changeScripts = allScriptScanner.GetChangeScripts(); var containsFirstScript = changeScripts.Contains(scriptOne); Assert.IsTrue(containsFirstScript); var containsSecondScript = changeScripts.Contains(scriptTwo); Assert.IsTrue(containsSecondScript); }
public void TestChangeScriptsHaveAnIdAndAFile() { FileInfo file = new FileInfo("abc.txt"); ChangeScript changeScript = new ChangeScript(5, file, Encoding.Default); Assert.AreEqual(5, changeScript.GetId()); Assert.AreEqual(file, changeScript.GetFile()); }
public void TestChangeScriptsHaveAnIdAndAFile() { FileInfo file = new FileInfo("abc.txt"); ChangeScript changeScript = new ChangeScript("v1.0", 5, file, Encoding.Default); Assert.AreEqual(5, changeScript.ScriptNumber); Assert.AreEqual(file, changeScript.FileInfo); }
public void ShouldInsertToSchemaVersionTable() { ChangeScript changeScript = new ChangeScript(1, "script.sql"); this.applier.InsertToSchemaVersionTable(changeScript); this.schemaVersionManager.Verify(s => s.RecordScriptApplied(changeScript)); }
public virtual void TestCanRetrieveDeltaFragmentHeaderSql() { ChangeScript script = new ChangeScript(3, "description"); Assert.AreEqual(@"--------------- Fragment begins: #3 --------------- INSERT INTO changelog (ChangeNumber, Project, StartDate, AppliedBy, FileName) VALUES (3, 'All', getdate(), 'none specified', 'description') GO ", databaseSchemaVersion.GenerateDoDeltaFragmentHeader(script)); }
public void retornar_nulo_quando_nao_encontrar_script_especifico() { databaseSchemaVersionManager.Setup(x => x.GetAppliedChanges()).Returns(new List <ChangeEntry>()); var changeScript = new ChangeScript("folder2", 1, new FileInfo("script.sql"), Encoding.UTF8); var changeEntry = repositorioScripts.ObterScriptExecutado(changeScript); changeEntry.Should().BeNull(); }
public virtual void TestCanRetrieveDeltaFragmentHeaderSql() { ChangeScript script = new ChangeScript(3, "description"); Assert.AreEqual(@"--------------- Fragment begins: #3 --------------- INSERT INTO changelog (change_number, delta_set, start_dt, applied_by, description) VALUES (3, 'All', getdate(), user_name(), 'description') GO ", databaseSchemaVersion.GenerateDoDeltaFragmentHeader(script)); }
public void CanFormatAChangeScriptList() { ChangeScript change1 = new ChangeScript(1); ChangeScript change3 = new ChangeScript(3); List<ChangeScript> list = new List<ChangeScript>(); list.Add(change1); list.Add(change3); Assert.AreEqual("1, 3", prettyPrinter.FormatChangeScriptList(list)); }
public void executar_um_conteudo_script() { const string conteudoSql = "Create Table tabelaTeste (id int not null, name varchar(45) not null, primary key (id));"; var changeScript = new ChangeScript("2.0.0.0", 8, new FileInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Mocks\Versioned\2.0.0.0\8.Create Product Table.sql")), Encoding.UTF8); executorScriptsIndividuais.Executar(changeScript, conteudoSql); AssertTableExists("tabelaTeste"); AssertTableExists("ChangeLog"); }
public virtual void TestCanRetrieveUndoDeltaFragmentFooterSql() { ChangeScript script = new ChangeScript(3, "description"); Assert.AreEqual( @"DELETE FROM changelog WHERE change_number = 3 AND delta_set = 'All' GO --------------- Fragment ends: #3 ---------------", databaseSchemaVersion.GenerateUndoDeltaFragmentFooter(script)); }
public virtual void TestCanRetrieveDeltaFragmentFooterSql() { ChangeScript script = new ChangeScript(3, "description"); Assert.AreEqual( @"UPDATE changelog SET complete_dt = getdate() WHERE change_number = 3 AND delta_set = 'All' GO --------------- Fragment ends: #3 ---------------", databaseSchemaVersion.GenerateDoDeltaFragmentFooter(script)); }
public void ApplyChangeUndoScript(ChangeScript script) { output.WriteLine(); output.WriteLine("-- Change script: " + script); if (_useTransaction) output.WriteLine(_dbmsSyntax.GenerateBeginTransaction()); CopyFileUndoContentsToStdOut(script.GetFile()); if (_useTransaction) output.WriteLine(_dbmsSyntax.GenerateCommitTransaction()); }
public string GenerateDoDeltaFragmentFooter(ChangeScript changeScript) { StringBuilder builder = new StringBuilder(); builder.AppendLine(DbmsSyntax.GenerateStatementDelimiter()); builder.AppendLine("UPDATE " + TableName + " SET CompletedDate = " + DbmsSyntax.GenerateTimestamp() + " WHERE ChangeNumber = " + changeScript.GetId() + " AND Project = '" + _deltaSet + "'" + DbmsSyntax.GenerateStatementDelimiter()); builder.AppendLine(DbmsSyntax.GenerateCommit()); builder.Append("--------------- Fragment ends: " + changeScript + " ---------------"); return builder.ToString(); }
public string GenerateDoDeltaFragmentHeader(ChangeScript changeScript) { StringBuilder builder = new StringBuilder(); builder.AppendLine("--------------- Fragment begins: " + changeScript + " ---------------"); builder.AppendLine("INSERT INTO " + TableName + " (ChangeNumber, Project, StartDate, AppliedBy, FileName)" + " VALUES (" + changeScript.GetId() + ", '" + _deltaSet + "', " + DbmsSyntax.GenerateTimestamp() + ", " + DbmsSyntax.GenerateChangeOwner() + ", '" + changeScript.GetDescription() + "')" + DbmsSyntax.GenerateStatementDelimiter()); builder.Append(DbmsSyntax.GenerateCommit()); return builder.ToString(); }
public void TestChangeScriptsMayBeNumberedFromZero() { ChangeScript zero = new ChangeScript(0); ChangeScript four = new ChangeScript(4); ChangeScript[] scripts = new ChangeScript[] { zero, four }; ChangeScriptRepository repository = new ChangeScriptRepository(new List <ChangeScript>(scripts)); List <ChangeScript> list = repository.GetOrderedListOfDoChangeScripts(); Assert.AreEqual(2, list.Count); Assert.AreSame(zero, list[0]); Assert.AreSame(four, list[1]); }
public void TestChangeScriptsMayBeNumberedFromZero() { ChangeScript zero = new ChangeScript(0); ChangeScript four = new ChangeScript(4); ChangeScript[] scripts = new ChangeScript[] {zero, four}; ChangeScriptRepository repository = new ChangeScriptRepository(new List<ChangeScript>(scripts)); List<ChangeScript> list = repository.GetAvailableChangeScripts().ToList(); Assert.AreEqual(2, list.Count); Assert.AreSame(zero, list[0]); Assert.AreSame(four, list[1]); }
public void TestThrowsWhenConstructedWithAChangeScriptListThatHasDuplicates() { ChangeScript two = new ChangeScript(2); ChangeScript three = new ChangeScript(3); ChangeScript anotherTwo = new ChangeScript(2); try { ChangeScript[] scripts = {three, two, anotherTwo}; new ChangeScriptRepository(new List<ChangeScript>(scripts)); Assert.Fail("expected exception"); } catch (DuplicateChangeScriptException ex) { Assert.AreEqual("There is more than one change script with number 2", ex.Message); } }
public void TestThrowsWhenConstructedWithAChangeScriptListThatHasDuplicates() { ChangeScript two = new ChangeScript(2); ChangeScript three = new ChangeScript(3); ChangeScript anotherTwo = new ChangeScript(2); try { ChangeScript[] scripts = { three, two, anotherTwo }; new ChangeScriptRepository(new List <ChangeScript>(scripts)); Assert.Fail("expected exception"); } catch (DuplicateChangeScriptException ex) { Assert.AreEqual("There is more than one change script with number 2", ex.Message); } }
public void obter_scripts_pedente_execucao_e_marcados_como_resolvido() { var scriptAplicado1 = new ChangeEntry("2.0.0.0", 8); scriptAplicado1.ScriptName = "8.Create Product Table.sql"; scriptAplicado1.Status = ScriptStatus.ProblemResolved; var scriptAplicado2 = new ChangeEntry("2.0.0.0", 9); scriptAplicado2.ScriptName = "09.Add Product Data.sql"; scriptAplicado2.Status = ScriptStatus.Success; var scriptAplicado3 = new ChangeEntry("2.0.0.0", 10); scriptAplicado2.ScriptName = "10.Add Product Data.sql"; scriptAplicado2.Status = ScriptStatus.SucessRevisedUser; databaseSchemaVersionManager.Setup(x => x.GetAppliedChanges()).Returns(new List <ChangeEntry> { scriptAplicado1, scriptAplicado2, scriptAplicado3, }); var changeScript1 = new ChangeScript("2.0.0.0", 8, "8.Create Product Table.sql"); var changeScript2 = new ChangeScript("2.0.0.0", 9, "09.Add Product Data.sql"); var changeScript3 = new ChangeScript("2.10.0.0", 1, "1.SQLCMD Add Customer Table.sql"); changeScriptRepository.Setup(x => x.GetAvailableChangeScripts()).Returns(new List <ChangeScript> { changeScript1, changeScript2, changeScript3 }); var listaChangeScripts = repositorioScripts.ObterScriptsPendenteExecucao(null); listaChangeScripts.Should().NotBeEmpty(); listaChangeScripts.Count.Should().Be(2); listaChangeScripts.Should().NotContain(x => x.ScriptName == "09.Add Product Data.sql" && x.Folder == "2.0.0.0"); listaChangeScripts.Should().NotContain(x => x.ScriptName == "10.Add Product Data.sql" && x.Folder == "2.0.0.0"); listaChangeScripts.Should().Contain(x => x.ScriptName == "8.Create Product Table.sql" && x.Folder == "2.0.0.0"); listaChangeScripts.Should().Contain(x => x.ScriptName == "1.SQLCMD Add Customer Table.sql" && x.Folder == "2.10.0.0"); }
public void obter_script_especifico() { var changeEntryASerRetornado = new ChangeEntry("folder2", 1); databaseSchemaVersionManager.Setup(x => x.GetAppliedChanges()).Returns(new List <ChangeEntry> { new ChangeEntry("folder1", 1), new ChangeEntry("folder1", 2), changeEntryASerRetornado, new ChangeEntry("folder2", 2), }); var changeScript = new ChangeScript("folder2", 1, new FileInfo("script.sql"), Encoding.UTF8); var changeEntry = repositorioScripts.ObterScriptExecutado(changeScript); changeEntry.Should().NotBeNull(); changeEntry.Should().Be(changeEntryASerRetornado); }
public void TestGivenASetOfChangeScriptsReturnsThemCorrectly() { ChangeScript one = new ChangeScript(1); ChangeScript two = new ChangeScript(2); ChangeScript three = new ChangeScript(3); ChangeScript four = new ChangeScript(4); ChangeScript[] scripts = {three, two, four, one}; ChangeScriptRepository repository = new ChangeScriptRepository(new List<ChangeScript>(scripts)); List<ChangeScript> list = repository.GetAvailableChangeScripts().ToList(); Assert.AreEqual(4, list.Count); Assert.AreSame(one, list[0]); Assert.AreSame(two, list[1]); Assert.AreSame(three, list[2]); Assert.AreSame(four, list[3]); }
public void TestGivenASetOfChangeScriptsReturnsThemCorrectly() { ChangeScript one = new ChangeScript(1); ChangeScript two = new ChangeScript(2); ChangeScript three = new ChangeScript(3); ChangeScript four = new ChangeScript(4); ChangeScript[] scripts = { three, two, four, one }; ChangeScriptRepository repository = new ChangeScriptRepository(new List <ChangeScript>(scripts)); List <ChangeScript> list = repository.GetOrderedListOfDoChangeScripts(); Assert.AreEqual(4, list.Count); Assert.AreSame(one, list[0]); Assert.AreSame(two, list[1]); Assert.AreSame(three, list[2]); Assert.AreSame(four, list[3]); }
public void aplicar_mudancas_ate_script_informado() { var scriptAplicado1 = new ChangeEntry("2.0.0.0", 8); scriptAplicado1.ScriptName = "8.Create Product Table.sql"; scriptAplicado1.Status = ScriptStatus.Success; var scriptAplicado2 = new ChangeEntry("2.0.0.0", 9); scriptAplicado2.ScriptName = "09.Add Product Data.sql"; scriptAplicado2.Status = ScriptStatus.Success; databaseSchemaVersionManager.Setup(x => x.GetAppliedChanges()).Returns(new List <ChangeEntry> { scriptAplicado1, scriptAplicado2 }); var changeScript1 = new ChangeScript("2.0.0.0", 8); var changeScript2 = new ChangeScript("2.0.0.0", 9); var changeScript3 = new ChangeScript("2.10.0.0", 1); var changeScript4 = new ChangeScript("2.10.0.0", 2); var changeScript5 = new ChangeScript("2.10.0.0", 3); changeScriptRepository.Setup(x => x.GetAvailableChangeScripts()).Returns(new List <ChangeScript> { changeScript1, changeScript2, changeScript3, changeScript4, changeScript5 }); var pendenteExecucao = repositorioScripts.ObterScriptsPendenteExecucao(new UniqueChange("2.10.0.0", 2)); pendenteExecucao.Should().NotBeEmpty(); pendenteExecucao.Count.Should().Be(2); pendenteExecucao[0].Folder.Should().Be("2.10.0.0"); pendenteExecucao[0].ScriptNumber.Should().Be(1); pendenteExecucao[1].Folder.Should().Be("2.10.0.0"); pendenteExecucao[1].ScriptNumber.Should().Be(2); }
public void obter_scripts_pedente_execucao_e_marcados_como_resolvido() { var scriptAplicado1 = new ChangeEntry("2.0.0.0", 8); scriptAplicado1.ScriptName = "8.Create Product Table.sql"; scriptAplicado1.Status = ScriptStatus.ProblemResolved; var scriptAplicado2 = new ChangeEntry("2.0.0.0", 9); scriptAplicado2.ScriptName = "09.Add Product Data.sql"; scriptAplicado2.Status = ScriptStatus.Success; var scriptAplicado3 = new ChangeEntry("2.0.0.0", 10); scriptAplicado2.ScriptName = "10.Add Product Data.sql"; scriptAplicado2.Status = ScriptStatus.SucessRevisedUser; databaseSchemaVersionManager.Setup(x => x.GetAppliedChanges()).Returns(new List<ChangeEntry> { scriptAplicado1, scriptAplicado2, scriptAplicado3, }); var changeScript1 = new ChangeScript("2.0.0.0", 8, "8.Create Product Table.sql"); var changeScript2 = new ChangeScript("2.0.0.0", 9, "09.Add Product Data.sql"); var changeScript3 = new ChangeScript("2.10.0.0", 1, "1.SQLCMD Add Customer Table.sql"); changeScriptRepository.Setup(x => x.GetAvailableChangeScripts()).Returns(new List<ChangeScript> { changeScript1, changeScript2, changeScript3 }); var listaChangeScripts = repositorioScripts.ObterScriptsPendenteExecucao(null); listaChangeScripts.Should().NotBeEmpty(); listaChangeScripts.Count.Should().Be(2); listaChangeScripts.Should().NotContain(x => x.ScriptName == "09.Add Product Data.sql" && x.Folder == "2.0.0.0"); listaChangeScripts.Should().NotContain(x => x.ScriptName == "10.Add Product Data.sql" && x.Folder == "2.0.0.0"); listaChangeScripts.Should().Contain(x => x.ScriptName == "8.Create Product Table.sql" && x.Folder == "2.0.0.0"); listaChangeScripts.Should().Contain(x => x.ScriptName == "1.SQLCMD Add Customer Table.sql" && x.Folder == "2.10.0.0"); }
public void TestThrowsWhenConstructedWithAChangeScriptListThatHasDuplicates() { var two = new ChangeScript("Alpha", 2); var three = new ChangeScript("Alpha", 3); var four = new ChangeScript("Beta", 3); var anotherTwo = new ChangeScript("Alpha", 2); try { var scripts = new[] { three, four, two, anotherTwo }; // ReSharper disable ObjectCreationAsStatement new ChangeScriptRepository(new List<ChangeScript>(scripts)); // ReSharper restore ObjectCreationAsStatement Assert.Fail("expected exception"); } catch (DuplicateChangeScriptException ex) { Assert.AreEqual("There is more than one change script with key 'Alpha/2'.", ex.Message); } }
public void ReturnsAllScannedScripts() { var scriptOne = new ChangeScript("2.0.0", 1); var scriptTwo = new ChangeScript("2.0.0", 2); var scannerOne = new Mock<IScriptScanner>(); scannerOne.Setup(s => s.GetChangeScripts()).Returns(new List<ChangeScript> { scriptOne }); var scannerTwo = new Mock<IScriptScanner>(); scannerTwo.Setup(s => s.GetChangeScripts()).Returns(new List<ChangeScript> { scriptTwo }); var allScriptScanner = new AllScriptScanner(scannerOne.Object, scannerTwo.Object); var changeScripts = allScriptScanner.GetChangeScripts(); var containsFirstScript = changeScripts.Contains(scriptOne); Assert.IsTrue(containsFirstScript); var containsSecondScript = changeScripts.Contains(scriptTwo); Assert.IsTrue(containsSecondScript); }
public void TestThrowsWhenConstructedWithAChangeScriptListThatHasDuplicates() { var two = new ChangeScript("Alpha", 2); var three = new ChangeScript("Alpha", 3); var four = new ChangeScript("Beta", 3); var anotherTwo = new ChangeScript("Alpha", 2); try { var scripts = new[] { three, four, two, anotherTwo }; // ReSharper disable ObjectCreationAsStatement new ChangeScriptRepository(new List <ChangeScript>(scripts)); // ReSharper restore ObjectCreationAsStatement Assert.Fail("expected exception"); } catch (DuplicateChangeScriptException ex) { Assert.AreEqual("There is more than one change script with key 'Alpha/2'.", ex.Message); } }
public virtual void RecordScriptApplied(ChangeScript script) { try { string sql = string.Format( CultureInfo.InvariantCulture, "INSERT INTO {0} (change_number, complete_dt, applied_by, description) VALUES (@1, {1}, {2}, @2)", this.changeLogTableName, this.syntax.GenerateTimestamp(), this.syntax.GenerateUser()); this.queryExecuter.Execute( sql, script.GetId(), script.GetDescription()); } catch (DbException e) { throw new SchemaVersionTrackingException("Could not update change log because: " + e.Message, e); } }
public void obter_todos_scripts() { var changeScript1 = new ChangeScript("2.0.0.0", 8, "8.Create Product Table.sql"); var changeScript2 = new ChangeScript("2.0.0.0", 9, "09.Add Product Data.sql"); var changeScript3 = new ChangeScript("2.10.0.0", 1, "1.SQLCMD Add Customer Table.sql"); changeScriptRepository.Setup(x => x.GetAvailableChangeScripts()).Returns(new List <ChangeScript> { changeScript1, changeScript2, changeScript3 }); var listaTodosOsScripts = repositorioScripts.ObterTodosOsScripts(); listaTodosOsScripts.Should().NotBeEmpty(); listaTodosOsScripts.Count.Should().BeGreaterOrEqualTo(3); listaTodosOsScripts.Should().Contain(x => x.ScriptName == "8.Create Product Table.sql" && x.Folder == "2.0.0.0"); listaTodosOsScripts.Should().Contain(x => x.ScriptName == "09.Add Product Data.sql" && x.Folder == "2.0.0.0"); listaTodosOsScripts.Should().Contain(x => x.ScriptName == "1.SQLCMD Add Customer Table.sql" && x.Folder == "2.10.0.0"); }
public string GenerateDoDeltaFragmentHeader(ChangeScript changeScript) { var builder = new StringBuilder(); var syntax = DbmsSyntax; builder.AppendLine("--------------- Fragment begins: " + changeScript + " ---------------"); builder.AppendLine("SET NOCOUNT ON"); builder.AppendLine(syntax.GenerateTrace(">>>>>>>>>>>>>>> INICIA DELTA: {0} >>>>>>>>>>>>>>>", changeScript)); builder.AppendLine("INSERT INTO " + TableName + " (change_number, delta_set, start_dt, applied_by, description)" + " VALUES (" + changeScript.GetId() + ", '" + deltaSet + "', " + syntax.GenerateTimestamp() + ", " + syntax.GenerateUser() + ", '" + changeScript.GetDescription() + "')"); builder.AppendLine(syntax.GenerateStatementDelimiter()); builder.Append(syntax.GenerateCommit()); builder.AppendLine("SET NOCOUNT OFF"); return builder.ToString(); }
public int CompareTo(object o) { ChangeScript other = (ChangeScript)o; return(id.CompareTo(other.id)); }
/// <summary> /// Retornar um objeto ChangeEntry com as informações de um determinado script aplicado /// </summary> /// <param name="changeScript"></param> /// <returns></returns> public ChangeEntry ObterScriptExecutado(ChangeScript changeScript) { var scriptsAplicados = ObterScriptsAplicados(); return scriptsAplicados.FirstOrDefault(x => x.CompareTo(changeScript) == 0); }
public string GenerateUndoDeltaFragmentFooter(ChangeScript changeScript) { StringBuilder builder = new StringBuilder(); builder.AppendLine("DELETE FROM " + TableName + " WHERE change_number = " + changeScript.GetId() + " AND delta_set = '" + deltaSet + "'" + DbmsSyntax.GenerateStatementDelimiter()); builder.AppendLine(DbmsSyntax.GenerateCommit()); builder.Append("--------------- Fragment ends: " + changeScript + " ---------------"); return builder.ToString(); }
public string GenerateUndoDeltaFragmentHeader(ChangeScript changeScript) { return "--------------- Fragment begins: " + changeScript + " ---------------"; }
public string GenerateDoDeltaFragmentHeader(ChangeScript changeScript) { StringBuilder builder = new StringBuilder(); builder.AppendLine("--------------- Fragment begins: " + changeScript + " ---------------"); builder.AppendLine("INSERT INTO " + TableName + " (change_number, delta_set, start_dt, applied_by, description)" + " VALUES (" + changeScript.GetId() + ", '" + deltaSet + "', " + DbmsSyntax.GenerateTimestamp() + ", " + DbmsSyntax.GenerateUser() + ", '" + changeScript.GetDescription() + "')" + DbmsSyntax.GenerateStatementDelimiter()); builder.Append(DbmsSyntax.GenerateCommit()); return builder.ToString(); }
public int CompareTo(object obj) { ChangeScript other = (ChangeScript)obj; return(this.id.CompareTo(other.id)); }
public virtual void TestCanRetrieveUndoDeltaFragmentHeaderSql() { ChangeScript script = new ChangeScript(3, "description"); Assert.AreEqual(@"--------------- Fragment begins: #3 ---------------", databaseSchemaVersion.GenerateUndoDeltaFragmentHeader(script)); }
/// <summary> /// Retornar um objeto ChangeEntry com as informações de um determinado script aplicado /// </summary> /// <param name="changeScript"></param> /// <returns></returns> public ChangeEntry ObterScriptExecutado(ChangeScript changeScript) { var scriptsAplicados = ObterScriptsAplicados(); return(scriptsAplicados.FirstOrDefault(x => x.CompareTo(changeScript) == 0)); }
public string GenerateDoDeltaFragmentFooter(ChangeScript changeScript) { var builder = new StringBuilder(); var syntax = DbmsSyntax; builder.AppendLine("SET NOCOUNT ON"); builder.AppendLine(syntax.GenerateStatementDelimiter()); builder.AppendLine("UPDATE " + TableName + " SET complete_dt = " + syntax.GenerateTimestamp() + " WHERE change_number = " + changeScript.GetId() + " AND delta_set = '" + deltaSet + "'" + syntax.GenerateStatementDelimiter()); builder.AppendLine(syntax.GenerateCommit()); builder.AppendLine(syntax.GenerateTrace("<<<<<<<<<<<<<<< TERMINA DELTA: {0} <<<<<<<<<<<<<<<", changeScript)); builder.AppendLine(syntax.GenerateTrace("")); builder.AppendLine("SET NOCOUNT OFF"); builder.Append("--------------- Fragment ends: " + changeScript + " ---------------"); return builder.ToString(); }
protected void SetUp() { FileInfo tempFile = new FileInfo(Path.GetTempFileName()); script = new ChangeScript(1, tempFile); }