mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-02-16 10:58:30 -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
|
// Mapping the object types for scripting
|
||||||
objectScriptMap.Add("table", "Table");
|
objectScriptMap.Add("table", "Table");
|
||||||
objectScriptMap.Add("view", "View");
|
objectScriptMap.Add("view", "View");
|
||||||
|
objectScriptMap.Add("function", "Function");
|
||||||
objectScriptMap.Add("storedprocedure", "Procedure");
|
objectScriptMap.Add("storedprocedure", "Procedure");
|
||||||
objectScriptMap.Add("userdefinedfunction", "Function");
|
objectScriptMap.Add("userdefinedfunction", "Function");
|
||||||
objectScriptMap.Add("userdefineddataType", "Type");
|
objectScriptMap.Add("tablevaluedfunction", "Function");
|
||||||
|
objectScriptMap.Add("userdefineddatatype", "Type");
|
||||||
objectScriptMap.Add("user", "User");
|
objectScriptMap.Add("user", "User");
|
||||||
objectScriptMap.Add("default", "Default");
|
objectScriptMap.Add("default", "Default");
|
||||||
objectScriptMap.Add("rule", "Rule");
|
objectScriptMap.Add("rule", "Rule");
|
||||||
@@ -66,7 +68,7 @@ namespace Microsoft.SqlTools.ServiceLayer.Scripting
|
|||||||
objectScriptMap.Add("xmlschemacollection", "Xml Schema Collection");
|
objectScriptMap.Add("xmlschemacollection", "Xml Schema Collection");
|
||||||
objectScriptMap.Add("schema", "Schema");
|
objectScriptMap.Add("schema", "Schema");
|
||||||
objectScriptMap.Add("planguide", "sp_create_plan_guide");
|
objectScriptMap.Add("planguide", "sp_create_plan_guide");
|
||||||
objectScriptMap.Add("userdefinedType", "Type");
|
objectScriptMap.Add("userdefinedtype", "Type");
|
||||||
objectScriptMap.Add("userdefinedaggregate", "Aggregate");
|
objectScriptMap.Add("userdefinedaggregate", "Aggregate");
|
||||||
objectScriptMap.Add("fulltextcatalog", "Fulltext Catalog");
|
objectScriptMap.Add("fulltextcatalog", "Fulltext Catalog");
|
||||||
objectScriptMap.Add("userdefinedtabletype", "Type");
|
objectScriptMap.Add("userdefinedtabletype", "Type");
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ GO";
|
|||||||
string objectName = "spt_monitor";
|
string objectName = "spt_monitor";
|
||||||
|
|
||||||
string schemaName = null;
|
string schemaName = null;
|
||||||
string objectType = "TABLE";
|
string objectType = "Table";
|
||||||
|
|
||||||
// Get locations for valid table object
|
// Get locations for valid table object
|
||||||
Location[] locations = scripter.GetSqlObjectDefinition(objectName, schemaName, objectType);
|
Location[] locations = scripter.GetSqlObjectDefinition(objectName, schemaName, objectType);
|
||||||
@@ -139,7 +139,7 @@ GO";
|
|||||||
string objectName = "spt_monitor";
|
string objectName = "spt_monitor";
|
||||||
|
|
||||||
string schemaName = "dbo";
|
string schemaName = "dbo";
|
||||||
string objectType = "TABLE";
|
string objectType = "Table";
|
||||||
|
|
||||||
// Get locations for valid table object with schema name
|
// Get locations for valid table object with schema name
|
||||||
Location[] locations = scripter.GetSqlObjectDefinition(objectName, schemaName, objectType);
|
Location[] locations = scripter.GetSqlObjectDefinition(objectName, schemaName, objectType);
|
||||||
@@ -260,7 +260,7 @@ GO";
|
|||||||
Scripter scripter = new Scripter(serverConnection, connInfo);
|
Scripter scripter = new Scripter(serverConnection, connInfo);
|
||||||
string objectName = "objects";
|
string objectName = "objects";
|
||||||
string schemaName = "sys";
|
string schemaName = "sys";
|
||||||
string objectType = "VIEW";
|
string objectType = "View";
|
||||||
|
|
||||||
Location[] locations = scripter.GetSqlObjectDefinition(objectName, schemaName, objectType);
|
Location[] locations = scripter.GetSqlObjectDefinition(objectName, schemaName, objectType);
|
||||||
Assert.NotNull(locations);
|
Assert.NotNull(locations);
|
||||||
@@ -401,7 +401,7 @@ GO";
|
|||||||
[Fact]
|
[Fact]
|
||||||
public async Task GetTableValuedFunctionDefinitionWithSchemaNameSuccessTest()
|
public async Task GetTableValuedFunctionDefinitionWithSchemaNameSuccessTest()
|
||||||
{
|
{
|
||||||
await ExecuteAndValidatePeekTest(ReturnTableTableFunctionQuery, ReturnTableFunctionName, TableValuedFunctionTypeName);
|
await ExecuteAndValidatePeekTest(ReturnTableTableFunctionQuery, ReturnTableFunctionName, ScalarValuedFunctionTypeName);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -444,7 +444,7 @@ GO";
|
|||||||
[Fact]
|
[Fact]
|
||||||
public async Task GetTableValuedFunctionDefinitionWithoutSchemaNameSuccessTest()
|
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]
|
[Fact]
|
||||||
public async Task ScriptSchemaCancel()
|
public async void ScriptSchemaCancel()
|
||||||
{
|
{
|
||||||
using (TestServiceDriverProvider testService = new TestServiceDriverProvider())
|
using (TestServiceDriverProvider testService = new TestServiceDriverProvider())
|
||||||
{
|
{
|
||||||
@@ -228,11 +228,12 @@ namespace Microsoft.SqlTools.ServiceLayer.TestDriver.Tests
|
|||||||
ScriptOptions = new ScriptOptions
|
ScriptOptions = new ScriptOptions
|
||||||
{
|
{
|
||||||
TypeOfDataToScript = "SchemaAndData",
|
TypeOfDataToScript = "SchemaAndData",
|
||||||
},
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
ScriptingResult result = await testService.Script(requestParams);
|
var result = Task.Run(() => testService.Script(requestParams));
|
||||||
ScriptingCancelResult cancelResult = await testService.CancelScript(result.OperationId);
|
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));
|
ScriptingCompleteParams cancelEvent = await testService.Driver.WaitForEvent(ScriptingCompleteEvent.Type, TimeSpan.FromSeconds(10));
|
||||||
Assert.True(cancelEvent.Canceled);
|
Assert.True(cancelEvent.Canceled);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user