private void RunIntegratedTestAndConfirmOutputResults(string syntaxName, DirectoryInfo templateDirectory) { StringWriter writer = new StringWriter(); ChangeScript changeOne = new StubChangeScript(1, "001_change.sql", "-- contents of change script 1"); ChangeScript changeTwo = new StubChangeScript(2, "002_change.sql", "-- contents of change script 2"); List<ChangeScript> changeScripts = new List<ChangeScript> { changeOne, changeTwo }; ChangeScriptRepository changeScriptRepository = new ChangeScriptRepository(changeScripts); var factory = new DbmsFactory(syntaxName, string.Empty); var dbmsSyntax = factory.CreateDbmsSyntax(); var createChangeLogTable = false; StubSchemaManager schemaManager = new StubSchemaManager(dbmsSyntax, createChangeLogTable); IChangeScriptApplier applier = new TemplateBasedApplier(writer, dbmsSyntax, "ChangeLog", ";", new NormalDelimiter(), templateDirectory); Controller controller = new Controller(changeScriptRepository, schemaManager, applier, null, createChangeLogTable, System.Console.Out); controller.ProcessChangeScripts(null); var actual = writer.ToString(); try { Assert.AreEqual(this.ReadExpectedFileContents(this.GetExpectedFilename(syntaxName)), actual); } catch (Exception) { // Output actual template on failure. Console.WriteLine("\n\nActual Template ({0}):", syntaxName); Console.WriteLine(actual); throw; } }
private void RunIntegratedTestAndConfirmOutputResults(string syntaxName, DirectoryInfo templateDirectory) { StringWriter writer = new StringWriter(); ChangeScript changeOne = new StubChangeScript(1, "001_change.sql", "-- contents of change script 1"); ChangeScript changeTwo = new StubChangeScript(2, "002_change.sql", "-- contents of change script 2"); List<ChangeScript> changeScripts = new List<ChangeScript> { changeOne, changeTwo }; ChangeScriptRepository changeScriptRepository = new ChangeScriptRepository(changeScripts); var factory = new DbmsFactory(syntaxName, string.Empty); StubSchemaManager schemaManager = new StubSchemaManager(factory.CreateDbmsSyntax()); IChangeScriptApplier applier = new TemplateBasedApplier(writer, syntaxName, "changelog", ";", new NormalDelimiter(), templateDirectory); Controller controller = new Controller(changeScriptRepository, schemaManager, applier, null, System.Console.Out); controller.ProcessChangeScripts(null); Assert.AreEqual(this.ReadExpectedFileContents(this.GetExpectedFilename(syntaxName)), writer.ToString()); }
public void ShouldRethrowSqlExceptionsWithInformationAboutWhatStringFailed() { this.splitter.Setup(s => s.Split("split; content")).Returns(new List<string> { "split", "content" }); ChangeScript script = new StubChangeScript(1, "script", "split; content"); this.queryExecuter.Setup(e => e.Execute("split")).Throws(new DummyDbException()); try { this.applier.ApplyChangeScript(script); Assert.Fail("exception expected"); } catch (ChangeScriptFailedException e) { Assert.AreEqual("split", e.ExecutedSql); Assert.AreEqual(script, e.Script); } this.queryExecuter.Verify(e => e.Execute("content"), Times.Never()); }