public void ExecutionEngineTest_TestComment() { string sqlStatement = "/*test comments*/"; ExecutionEngineConditions conditions = new ExecutionEngineConditions(); conditions.IsTransactionWrapped = true; conditions.IsParseOnly = false; conditions.IsHaltOnError = false; TestExecutor executor = new TestExecutor(sqlStatement, connection, conditions); executor.Run(); //Get the expected values List <string> batchScripts = executor.BatchScripts; ExecuteSqlBatch(batchScripts, connection); Assert.Equal(ScriptExecutionResult.Success, executor.ExecutionResult); Assert.True(CompareTwoIntLists(executor.ResultCountQueue, expResultCounts)); }
public void ExecutionEngineTest_MultiValidScripts() { string sqlStatement = "select * from sys.databases\ngo\nselect name from sys.databases\ngo\nprint 'test'\ngo"; ExecutionEngineConditions conditions = new ExecutionEngineConditions(); conditions.IsTransactionWrapped = true; conditions.IsParseOnly = false; conditions.IsHaltOnError = false; TestExecutor executor = new TestExecutor(sqlStatement, connection, conditions, false); executor.Run(); //Get the expected values List <string> batchScripts = executor.BatchScripts; ExecuteSqlBatch(batchScripts, connection); Assert.Equal(ScriptExecutionResult.Success, executor.ExecutionResult); Assert.True(CompareTwoIntLists(executor.ResultCountQueue, expResultCounts)); }
public void ExecutionEngineTest_ASyncCancelAfterExecutionDone() { string sqlStatement = "select 1"; ExecutionEngineConditions conditions = new ExecutionEngineConditions(); conditions.IsTransactionWrapped = true; conditions.IsParseOnly = false; conditions.IsHaltOnError = false; TestExecutor executor = new TestExecutor(sqlStatement, connection, conditions, true); executor.SyncCancel = false; executor.Run(); Assert.True(!executor.CancelEventFired); Assert.NotNull(executor.ScriptExecuteThread); if (executor.ScriptExecuteThread != null) { Assert.True(!executor.ScriptExecuteThread.IsAlive); } Assert.Equal(ScriptExecutionResult.Success | ScriptExecutionResult.Cancel, executor.ExecutionResult); }
public void ExecutionEngineTest_ParseOnly_InvalidScript() { string sqlStatement = "select ** from authors"; ExecutionEngineConditions conditions = new ExecutionEngineConditions(); conditions.IsTransactionWrapped = true; conditions.IsParseOnly = true; conditions.IsHaltOnError = false; TestExecutor executor = new TestExecutor(sqlStatement, connection, conditions); executor.Run(); //Get the expected values List <string> batchScripts = executor.BatchScripts; ExecuteSqlBatch(batchScripts, connection); Assert.Equal(ScriptExecutionResult.Success | ScriptExecutionResult.Failure, executor.ExecutionResult); Assert.True(!executor.ParserExecutionError); Assert.True(executor.ResultCountQueue.Count == 0); Assert.True(CompareTwoStringLists(executor.ErrorMessageQueue, expErrorMessage)); }
public void ExecutionEngineTest_ASyncCancel() { //string sqlStatement = "--This is a test\nSELECT * FROM sysobjects as t\nGO 50\n use pubsplus \n select * from titles\n go" ; string sqlStatement = "waitfor delay '0:0:10'"; ExecutionEngineConditions conditions = new ExecutionEngineConditions(); conditions.IsTransactionWrapped = true; conditions.IsParseOnly = false; conditions.IsHaltOnError = false; TestExecutor executor = new TestExecutor(sqlStatement, connection, conditions, true); executor.SyncCancel = false; executor.Run(); Assert.True(executor.CancelEventFired); Assert.NotNull(executor.ScriptExecuteThread); if (executor.ScriptExecuteThread != null) { Assert.True(!executor.ScriptExecuteThread.IsAlive); } Assert.Equal(ScriptExecutionResult.Cancel, executor.ExecutionResult); }
public void ExecutionEngineTest_HaltOnError_OneBatch() { string sqlStatement = "select * from authors\n go 30\n"; ExecutionEngineConditions conditions = new ExecutionEngineConditions(); conditions.IsTransactionWrapped = true; conditions.IsParseOnly = false; conditions.IsHaltOnError = true; TestExecutor executor = new TestExecutor(sqlStatement, connection, conditions); executor.Run(); //Get the expected values List <string> batchScripts = executor.BatchScripts; ExecuteSqlBatch(batchScripts, connection); Assert.Equal(ScriptExecutionResult.Halted | ScriptExecutionResult.Failure, executor.ExecutionResult); Assert.True(CompareTwoStringLists(executor.ErrorMessageQueue, expErrorMessage)); Assert.True(CompareTwoIntLists(executor.ResultCountQueue, expResultCounts)); Assert.True(executor.ResultCountQueue.Count == 0); Assert.Equal(0, executor.BatchFinshedEventCounter); }
public void ExecutionEngineTest_MixedValidandInvalidScript() { string sqlStatement = "SELECT * FROM Authors \n Go\n select * from sysobjects \n go\nif exists (select * from sysobjects where id = object_id('MyTab')) DROP TABLE MyTab2"; ExecutionEngineConditions conditions = new ExecutionEngineConditions(); conditions.IsTransactionWrapped = true; conditions.IsParseOnly = false; conditions.IsHaltOnError = false; TestExecutor executor = new TestExecutor(sqlStatement, connection, conditions); executor.Run(); //Get the expected values List <string> batchScripts = executor.BatchScripts; ExecuteSqlBatch(batchScripts, connection); Assert.Equal(executor.ExecutionResult, ScriptExecutionResult.Success | ScriptExecutionResult.Failure); Assert.True(!executor.ParserExecutionError); Assert.True(CompareTwoStringLists(executor.ErrorMessageQueue, expErrorMessage)); Assert.True(CompareTwoIntLists(executor.ResultCountQueue, expResultCounts)); }
public void ExecutionEngineTest_MultipleInvalidScript_SingleBatch() { string sqlStatement = "select ** from products \n insert into products values (1,'abc')\n go \n"; ExecutionEngineConditions conditions = new ExecutionEngineConditions(); conditions.IsTransactionWrapped = true; conditions.IsParseOnly = false; conditions.IsHaltOnError = false; TestExecutor executor = new TestExecutor(sqlStatement, connection, conditions); executor.Run(); //Get the expected values List <string> batchScripts = executor.BatchScripts; ExecuteSqlBatch(batchScripts, connection); Assert.Equal(ScriptExecutionResult.Success | ScriptExecutionResult.Failure, executor.ExecutionResult); Assert.True(!executor.ParserExecutionError); Assert.True(CompareTwoStringLists(executor.ErrorMessageQueue, expErrorMessage)); Assert.True(CompareTwoIntLists(executor.ResultCountQueue, expResultCounts)); }