public void uses_variable_subtitute_preprocessor_when_running_scripts() { var dbConnection = Substitute.For<IDbConnection>(); var command = Substitute.For<IDbCommand>(); dbConnection.CreateCommand().Returns(command); var executor = new SqlScriptExecutor(() => new TestConnectionManager(dbConnection, true), () => new ConsoleUpgradeLog(), null, () => true, null); executor.Execute(new SqlScript("Test", "create $foo$.Table"), new Dictionary<string, string>{{"foo", "bar"}}); command.Received().ExecuteNonQuery(); Assert.AreEqual("create bar.Table", command.CommandText); }
public void uses_variable_subtitutes_schema() { var dbConnection = Substitute.For<IDbConnection>(); var command = Substitute.For<IDbCommand>(); dbConnection.CreateCommand().Returns(command); var executor = new SqlScriptExecutor(() => new TestConnectionManager(dbConnection, true), () => new ConsoleUpgradeLog(), "foo", () => true, null); executor.Execute(new SqlScript("Test", "create $schema$.Table")); command.Received().ExecuteNonQuery(); Assert.AreEqual("create [foo].Table", command.CommandText); }
public void when_schema_is_null_schema_is_stripped_from_scripts() { var dbConnection = Substitute.For<IDbConnection>(); var command = Substitute.For<IDbCommand>(); dbConnection.CreateCommand().Returns(command); var executor = new SqlScriptExecutor(() => dbConnection, () => new ConsoleUpgradeLog(), null, () => true, null); executor.Execute(new SqlScript("Test", "create $schema$.Table")); command.Received().ExecuteNonQuery(); Assert.AreEqual("create Table", command.CommandText); }
public void logs_output_when_configured_to() { var dbConnection = Substitute.For<IDbConnection>(); var command = Substitute.For<IDbCommand>(); dbConnection.CreateCommand().Returns(command); var executor = new SqlScriptExecutor(() => new TestConnectionManager(dbConnection, true) { IsScriptOutputLogged = true }, () => new ConsoleUpgradeLog(), "foo", () => true, null); executor.Execute(new SqlScript("Test", "create $schema$.Table")); command.Received().ExecuteReader(); command.DidNotReceive().ExecuteNonQuery(); Assert.AreEqual("create [foo].Table", command.CommandText); }
public void uses_variable_subtitute_preprocessor_when_running_scripts_with_multi_line_comment() { string multiLineComment = @"/* some comment from excel $A$6 some comment */ create $foo$.Table"; string multiLineCommentResult = @"/* some comment from excel $A$6 some comment */ create bar.Table"; var dbConnection = Substitute.For<IDbConnection>(); var command = Substitute.For<IDbCommand>(); dbConnection.CreateCommand().Returns(command); var executor = new SqlScriptExecutor(() => new TestConnectionManager(dbConnection, true), () => new ConsoleUpgradeLog(), null, () => true, null); executor.Execute(new SqlScript("Test", multiLineComment), new Dictionary<string, string> { { "foo", "bar" } }); command.Received().ExecuteNonQuery(); Assert.AreEqual(multiLineCommentResult, command.CommandText); }