public void StoredProcedureCallWithoutParameters() { const string text = "dbo.SOMEPROCEDURE"; const string expectedOutput = "EXEC dbo.SOMEPROCEDURE;"; var cmd = CreateDbCommand(CommandType.StoredProcedure, text); var formatter = new VerboseSqlServerFormatter(); var actualOutput = GenerateOutput(formatter, cmd, text); Assert.Equal(expectedOutput, actualOutput); }
public void EnsureVerboseSqlServerFormatterOnlyAddsInformation() { const string text = "select 1"; var cmd = CreateDbCommand(CommandType.Text, text); var formatter = new VerboseSqlServerFormatter(true); var actualOutput = GenerateOutput(formatter, cmd, text); const string expectedOutput = "-- Command Type: Text\n-- Database: TestDatabase\n\nselect 1;"; Assert.Equal(expectedOutput, actualOutput); }
public void StoredProcedureCallWithOneReturnParameter(string at) { const string text = "dbo.SOMEPROCEDURE"; var cmd = CreateDbCommand(CommandType.StoredProcedure, text); AddDbParameter <int>(cmd, at + "retval", null, ParameterDirection.ReturnValue); var formatter = new VerboseSqlServerFormatter(); var actualOutput = GenerateOutput(formatter, cmd, text); const string expectedOutput = "DECLARE @retval int;\n\nEXEC @retval = dbo.SOMEPROCEDURE;\nSELECT @retval AS ReturnValue;"; Assert.Equal(expectedOutput, actualOutput); }
public void StoredProcedureCallWithOneParameter(string at) { const string text = "dbo.SOMEPROCEDURE"; var cmd = CreateDbCommand(CommandType.StoredProcedure, text); AddDbParameter <int>(cmd, at + "x", 123, ParameterDirection.Input); var formatter = new VerboseSqlServerFormatter(); var actualOutput = GenerateOutput(formatter, cmd, text); const string expectedOutput = "DECLARE @x int = 123;\n\nEXEC dbo.SOMEPROCEDURE @x = @x;"; Assert.Equal(expectedOutput, actualOutput); }
public void StoredProcedureCallWithInOutputParameter(string at) { const string text = "dbo.SOMEPROCEDURE"; var cmd = CreateDbCommand(CommandType.StoredProcedure, text); // note: since the sql-OUTPUT parameters can be read within the procedure, we need to support setting the value AddDbParameter <int>(cmd, at + "x", 123, ParameterDirection.InputOutput); var formatter = new VerboseSqlServerFormatter(); var actualOutput = GenerateOutput(formatter, cmd, text); const string expectedOutput = "DECLARE @x int = 123;\n\nEXEC dbo.SOMEPROCEDURE @x = @x OUTPUT;\nSELECT @x AS x;"; Assert.Equal(expectedOutput, actualOutput); }
public void VerboseSqlServerFormatterAddsTransactionInformation() { // note: since we don't have an active sql connection we cannot test the transactions coupled to a connection // the only thing we can do is test the TransactionScope transaction var formatter = new VerboseSqlServerFormatter(true); const string text = "select 1"; var cmd = CreateDbCommand(CommandType.Text, text); #if NET461 const string expectedOutput = "-- Command Type: Text\n-- Database: TestDatabase\n-- Transaction Scope Iso Level: Serializable\n\nselect 1;"; var transactionScope = new TransactionScope(); var actualOutput = GenerateOutput(formatter, cmd, text); transactionScope.Dispose(); #else const string expectedOutput = "-- Command Type: Text\n-- Database: TestDatabase\n\nselect 1;"; var actualOutput = GenerateOutput(formatter, cmd, text); #endif Assert.Equal(expectedOutput, actualOutput); }