mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-14 01:25:40 -05:00
Task/script refactor (#476)
* scripting working with race conditions * new service works with no race conditions * use new scripting service and commented out tests * refactored peek definition to use mssql-scripter * fixed peek definition tests * removed auto gen comment * fixed peek definition highlighting bug * made scripting async and fixed event handlers * fixed tests (without cancel and plan notifs) * removed dead code * added nuget package * CR comments + select script service implementation * minor fixes and added test * CR comments and script select * added unit tests * code review comments and cleanup * fixed failing scripting tests
This commit is contained in:
@@ -52,9 +52,11 @@ namespace Microsoft.SqlTools.ServiceLayer.Scripting
|
||||
// Mapping the object types for scripting
|
||||
objectScriptMap.Add("table", "Table");
|
||||
objectScriptMap.Add("view", "View");
|
||||
objectScriptMap.Add("function", "Function");
|
||||
objectScriptMap.Add("storedprocedure", "Procedure");
|
||||
objectScriptMap.Add("userdefinedfunction", "Function");
|
||||
objectScriptMap.Add("userdefineddataType", "Type");
|
||||
objectScriptMap.Add("tablevaluedfunction", "Function");
|
||||
objectScriptMap.Add("userdefineddatatype", "Type");
|
||||
objectScriptMap.Add("user", "User");
|
||||
objectScriptMap.Add("default", "Default");
|
||||
objectScriptMap.Add("rule", "Rule");
|
||||
@@ -66,7 +68,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Scripting
|
||||
objectScriptMap.Add("xmlschemacollection", "Xml Schema Collection");
|
||||
objectScriptMap.Add("schema", "Schema");
|
||||
objectScriptMap.Add("planguide", "sp_create_plan_guide");
|
||||
objectScriptMap.Add("userdefinedType", "Type");
|
||||
objectScriptMap.Add("userdefinedtype", "Type");
|
||||
objectScriptMap.Add("userdefinedaggregate", "Aggregate");
|
||||
objectScriptMap.Add("fulltextcatalog", "Fulltext Catalog");
|
||||
objectScriptMap.Add("userdefinedtabletype", "Type");
|
||||
|
||||
@@ -97,7 +97,7 @@ GO";
|
||||
string objectName = "spt_monitor";
|
||||
|
||||
string schemaName = null;
|
||||
string objectType = "TABLE";
|
||||
string objectType = "Table";
|
||||
|
||||
// Get locations for valid table object
|
||||
Location[] locations = scripter.GetSqlObjectDefinition(objectName, schemaName, objectType);
|
||||
@@ -139,7 +139,7 @@ GO";
|
||||
string objectName = "spt_monitor";
|
||||
|
||||
string schemaName = "dbo";
|
||||
string objectType = "TABLE";
|
||||
string objectType = "Table";
|
||||
|
||||
// Get locations for valid table object with schema name
|
||||
Location[] locations = scripter.GetSqlObjectDefinition(objectName, schemaName, objectType);
|
||||
@@ -260,7 +260,7 @@ GO";
|
||||
Scripter scripter = new Scripter(serverConnection, connInfo);
|
||||
string objectName = "objects";
|
||||
string schemaName = "sys";
|
||||
string objectType = "VIEW";
|
||||
string objectType = "View";
|
||||
|
||||
Location[] locations = scripter.GetSqlObjectDefinition(objectName, schemaName, objectType);
|
||||
Assert.NotNull(locations);
|
||||
@@ -401,7 +401,7 @@ GO";
|
||||
[Fact]
|
||||
public async Task GetTableValuedFunctionDefinitionWithSchemaNameSuccessTest()
|
||||
{
|
||||
await ExecuteAndValidatePeekTest(ReturnTableTableFunctionQuery, ReturnTableFunctionName, TableValuedFunctionTypeName);
|
||||
await ExecuteAndValidatePeekTest(ReturnTableTableFunctionQuery, ReturnTableFunctionName, ScalarValuedFunctionTypeName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -444,7 +444,7 @@ GO";
|
||||
[Fact]
|
||||
public async Task GetTableValuedFunctionDefinitionWithoutSchemaNameSuccessTest()
|
||||
{
|
||||
await ExecuteAndValidatePeekTest(ReturnTableTableFunctionQuery, ReturnTableFunctionName, TableValuedFunctionTypeName, null);
|
||||
await ExecuteAndValidatePeekTest(ReturnTableTableFunctionQuery, ReturnTableFunctionName, ScalarValuedFunctionTypeName, null);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -217,7 +217,7 @@ namespace Microsoft.SqlTools.ServiceLayer.TestDriver.Tests
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ScriptSchemaCancel()
|
||||
public async void ScriptSchemaCancel()
|
||||
{
|
||||
using (TestServiceDriverProvider testService = new TestServiceDriverProvider())
|
||||
{
|
||||
@@ -228,11 +228,12 @@ namespace Microsoft.SqlTools.ServiceLayer.TestDriver.Tests
|
||||
ScriptOptions = new ScriptOptions
|
||||
{
|
||||
TypeOfDataToScript = "SchemaAndData",
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
ScriptingResult result = await testService.Script(requestParams);
|
||||
ScriptingCancelResult cancelResult = await testService.CancelScript(result.OperationId);
|
||||
var result = Task.Run(() => testService.Script(requestParams));
|
||||
ScriptingProgressNotificationParams progressParams = await testService.Driver.WaitForEvent(ScriptingProgressNotificationEvent.Type, TimeSpan.FromSeconds(10));
|
||||
Task.Run(() => testService.CancelScript(progressParams.OperationId));
|
||||
ScriptingCompleteParams cancelEvent = await testService.Driver.WaitForEvent(ScriptingCompleteEvent.Type, TimeSpan.FromSeconds(10));
|
||||
Assert.True(cancelEvent.Canceled);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user