diff --git a/src/Microsoft.SqlTools.Hosting/Hosting/Contracts/Error.cs b/src/Microsoft.SqlTools.Hosting/Hosting/Contracts/Error.cs
index 7700223a..1966b446 100644
--- a/src/Microsoft.SqlTools.Hosting/Hosting/Contracts/Error.cs
+++ b/src/Microsoft.SqlTools.Hosting/Hosting/Contracts/Error.cs
@@ -21,9 +21,14 @@ namespace Microsoft.SqlTools.Hosting.Contracts
///
public string Message { get; set; }
+ ///
+ /// Additional data.
+ ///
+ public string Data { get; set; }
+
public override string ToString()
{
- return $"Error(Code={Code},Message='{Message}')";
+ return $"Error(Code={Code},Message='{Message}',Data='{Data}')";
}
}
}
\ No newline at end of file
diff --git a/src/Microsoft.SqlTools.Hosting/Hosting/Protocol/RequestContext.cs b/src/Microsoft.SqlTools.Hosting/Hosting/Protocol/RequestContext.cs
index 3a8f8123..86e655f9 100644
--- a/src/Microsoft.SqlTools.Hosting/Hosting/Protocol/RequestContext.cs
+++ b/src/Microsoft.SqlTools.Hosting/Hosting/Protocol/RequestContext.cs
@@ -38,13 +38,14 @@ namespace Microsoft.SqlTools.Hosting.Protocol
eventParams);
}
- public virtual Task SendError(string errorMessage, int errorCode = 0)
+ public virtual Task SendError(string errorMessage, int errorCode = 0, string data = null)
{
// Build the error message
Error error = new Error
{
Message = errorMessage,
- Code = errorCode
+ Code = errorCode,
+ Data = data
};
return this.messageWriter.WriteError(
requestMessage.Method,
@@ -55,7 +56,7 @@ namespace Microsoft.SqlTools.Hosting.Protocol
public virtual Task SendError(Exception e)
{
// Overload to use the parameterized error handler
- return SendError(e.Message, e.HResult);
+ return SendError(e.Message, e.HResult, e.StackTrace);
}
}
}
diff --git a/test/Microsoft.SqlTools.ServiceLayer.IntegrationTests/LanguageServer/LanguageServiceTests.cs b/test/Microsoft.SqlTools.ServiceLayer.IntegrationTests/LanguageServer/LanguageServiceTests.cs
index 3a2fc103..77e70024 100644
--- a/test/Microsoft.SqlTools.ServiceLayer.IntegrationTests/LanguageServer/LanguageServiceTests.cs
+++ b/test/Microsoft.SqlTools.ServiceLayer.IntegrationTests/LanguageServer/LanguageServiceTests.cs
@@ -136,7 +136,7 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.LanguageServer
var requestContext = new Mock>();
requestContext.Setup(x => x.SendResult(It.IsAny()))
.Returns(Task.FromResult(true));
- requestContext.Setup(x => x.SendError(It.IsAny(), 0))
+ requestContext.Setup(x => x.SendError(It.IsAny(), 0, It.IsAny()))
.Returns(Task.FromResult(true));
//Create completion extension parameters
@@ -151,13 +151,13 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.LanguageServer
await autoCompleteService.HandleCompletionExtLoadRequest(extensionParams, requestContext.Object);
requestContext.Verify(x => x.SendResult(It.IsAny()), Times.Once);
- requestContext.Verify(x => x.SendError(It.IsAny(), 0), Times.Never);
+ requestContext.Verify(x => x.SendError(It.IsAny(), 0, It.IsAny()), Times.Never);
//Try to load the same completion extension second time, expect an error sent
await autoCompleteService.HandleCompletionExtLoadRequest(extensionParams, requestContext.Object);
requestContext.Verify(x => x.SendResult(It.IsAny()), Times.Once);
- requestContext.Verify(x => x.SendError(It.IsAny(), 0), Times.Once);
+ requestContext.Verify(x => x.SendError(It.IsAny(), 0, It.IsAny()), Times.Once);
//Try to load the completion extension with new modified timestamp, expect a success
var assemblyCopyPath = CopyFileWithNewModifiedTime(extensionParams.AssemblyPath);
@@ -173,7 +173,7 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.LanguageServer
await autoCompleteService.HandleCompletionExtLoadRequest(extensionParams, requestContext.Object);
requestContext.Verify(x => x.SendResult(It.IsAny()), Times.Exactly(2));
- requestContext.Verify(x => x.SendError(It.IsAny(), 0), Times.Once);
+ requestContext.Verify(x => x.SendError(It.IsAny(), 0, It.IsAny()), Times.Once);
ScriptParseInfo scriptInfo = new ScriptParseInfo { IsConnected = true };
autoCompleteService.ParseAndBind(result.ScriptFile, result.ConnectionInfo);
@@ -354,7 +354,7 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.LanguageServer
// Create a workspace and add file to it so that its found for intellense building
var workspace = new ServiceLayer.Workspace.Workspace();
var workspaceService = new WorkspaceService { Workspace = workspace };
- var langService = new LanguageService() { WorkspaceServiceInstance = workspaceService };
+ var langService = new LanguageService() { WorkspaceServiceInstance = workspaceService };
langService.CurrentWorkspace.GetFile(scriptFile.ClientUri);
langService.CurrentWorkspaceSettings.SqlTools.IntelliSense.EnableIntellisense = true;
@@ -448,7 +448,7 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.LanguageServer
// Now create tables that should show up in the completion list
testDb.RunQuery(createTableQueries);
- // And refresh the cache
+ // And refresh the cache
await langService.HandleRebuildIntelliSenseNotification(
new RebuildIntelliSenseParams() { OwnerUri = connectionInfoResult.ScriptFile.ClientUri },
new TestEventContext());
@@ -462,7 +462,7 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.LanguageServer
finally
{
testDb.Cleanup();
- }
+ }
}
}
}
diff --git a/test/Microsoft.SqlTools.ServiceLayer.Test.Common/RequestContextMocking/EventFlowValidator.cs b/test/Microsoft.SqlTools.ServiceLayer.Test.Common/RequestContextMocking/EventFlowValidator.cs
index 50956594..7de4732d 100644
--- a/test/Microsoft.SqlTools.ServiceLayer.Test.Common/RequestContextMocking/EventFlowValidator.cs
+++ b/test/Microsoft.SqlTools.ServiceLayer.Test.Common/RequestContextMocking/EventFlowValidator.cs
@@ -114,11 +114,11 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.Common.RequestContextMocking
.Returns(Task.FromResult(0));
// Add general handler for error event
- Context.AddErrorHandling((msg, code) =>
+ Context.AddErrorHandling((msg, code, data) =>
{
ReceivedEvents.Add(new ReceivedEvent
{
- EventObject = new Error {Message = msg, Code = code},
+ EventObject = new Error { Message = msg, Code = code, Data = data },
EventType = EventTypes.Error
});
});
@@ -154,15 +154,15 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.Common.RequestContextMocking
// Step 1) Make sure the event type matches
Assert.True(expected.EventType.Equals(received.EventType),
string.Format("Expected EventType {0} but got {1}. Received object is {2}", expected.EventType, received.EventType, received.EventObject.ToString()));
-
+
// Step 2) Make sure the param type matches
- Assert.True( expected.ParamType == received.EventObject.GetType()
- , $"expected and received event types differ for event Number: {i+1}. Expected EventType: {expected.ParamType} & Received EventType: {received.EventObject.GetType()}\r\n"
+ Assert.True(expected.ParamType == received.EventObject.GetType()
+ , $"expected and received event types differ for event Number: {i + 1}. Expected EventType: {expected.ParamType} & Received EventType: {received.EventObject.GetType()}\r\n"
+ $"\there is the full list of expected and received events::"
- + $"\r\n\t\t expected event types:{string.Join("\r\n\t\t", ExpectedEvents.ConvertAll(evt=>evt.ParamType))}"
- + $"\r\n\t\t received event types:{string.Join("\r\n\t\t", ReceivedEvents.ConvertAll(evt=>evt.EventObject.GetType()))}"
+ + $"\r\n\t\t expected event types:{string.Join("\r\n\t\t", ExpectedEvents.ConvertAll(evt => evt.ParamType))}"
+ + $"\r\n\t\t received event types:{string.Join("\r\n\t\t", ReceivedEvents.ConvertAll(evt => evt.EventObject.GetType()))}"
);
-
+
// Step 3) Run the validator on the param object
Assert.NotNull(received.EventObject);
expected.Validator?.DynamicInvoke(received.EventObject);
diff --git a/test/Microsoft.SqlTools.ServiceLayer.Test.Common/RequestContextMocking/RequestContextMocks.cs b/test/Microsoft.SqlTools.ServiceLayer.Test.Common/RequestContextMocking/RequestContextMocks.cs
index df2a5c66..68f2bfad 100644
--- a/test/Microsoft.SqlTools.ServiceLayer.Test.Common/RequestContextMocking/RequestContextMocks.cs
+++ b/test/Microsoft.SqlTools.ServiceLayer.Test.Common/RequestContextMocking/RequestContextMocks.cs
@@ -48,14 +48,14 @@ namespace Microsoft.SqlTools.ServiceLayer.Test.Common.RequestContextMocking
public static Mock> AddErrorHandling(
this Mock> mock,
- Action errorCallback)
+ Action errorCallback)
{
// Setup the mock for SendError
- var sendErrorFlow = mock.Setup(rc => rc.SendError(It.IsAny(), It.IsAny()))
+ var sendErrorFlow = mock.Setup(rc => rc.SendError(It.IsAny(), It.IsAny(), It.IsAny()))
.Returns(Task.FromResult(0));
if (errorCallback != null)
{
- sendErrorFlow.Callback(errorCallback);
+ sendErrorFlow.Callback(errorCallback);
}
return mock;
diff --git a/test/Microsoft.SqlTools.ServiceLayer.UnitTests/Credentials/CredentialServiceTests.cs b/test/Microsoft.SqlTools.ServiceLayer.UnitTests/Credentials/CredentialServiceTests.cs
index 1182abcf..75b78318 100644
--- a/test/Microsoft.SqlTools.ServiceLayer.UnitTests/Credentials/CredentialServiceTests.cs
+++ b/test/Microsoft.SqlTools.ServiceLayer.UnitTests/Credentials/CredentialServiceTests.cs
@@ -78,7 +78,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Credentials
public async Task SaveCredentialThrowsIfCredentialIdMissing()
{
string errorResponse = null;
- var contextMock = RequestContextMocks.Create(null).AddErrorHandling((msg, code) => errorResponse = msg);
+ var contextMock = RequestContextMocks.Create(null).AddErrorHandling((msg, code, data) => errorResponse = msg);
await service.HandleSaveCredentialRequest(new Credential(null), contextMock.Object);
TestUtils.VerifyErrorSent(contextMock);
@@ -89,7 +89,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Credentials
public async Task SaveCredentialThrowsIfPasswordMissing()
{
string errorResponse = null;
- var contextMock = RequestContextMocks.Create(null).AddErrorHandling((msg, code) => errorResponse = msg);
+ var contextMock = RequestContextMocks.Create(null).AddErrorHandling((msg, code, data) => errorResponse = msg);
await service.HandleSaveCredentialRequest(new Credential(CredentialId), contextMock.Object);
TestUtils.VerifyErrorSent(contextMock);
@@ -196,7 +196,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Credentials
public async Task ReadCredentialThrowsIfCredentialIsNull()
{
string errorResponse = null;
- var contextMock = RequestContextMocks.Create(null).AddErrorHandling((msg, code) => errorResponse = msg);
+ var contextMock = RequestContextMocks.Create(null).AddErrorHandling((msg, code, data) => errorResponse = msg);
// Verify throws on null, and this is sent as an error
await service.HandleReadCredentialRequest(null, contextMock.Object);
@@ -208,7 +208,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Credentials
public async Task ReadCredentialThrowsIfIdMissing()
{
string errorResponse = null;
- var contextMock = RequestContextMocks.Create(null).AddErrorHandling((msg, code) => errorResponse = msg);
+ var contextMock = RequestContextMocks.Create(null).AddErrorHandling((msg, code, data) => errorResponse = msg);
// Verify throws with no ID
await service.HandleReadCredentialRequest(new Credential(), contextMock.Object);
@@ -238,7 +238,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Credentials
public async Task DeleteCredentialThrowsIfIdMissing()
{
object errorResponse = null;
- var contextMock = RequestContextMocks.Create(null).AddErrorHandling((msg, code) => errorResponse = msg);
+ var contextMock = RequestContextMocks.Create(null).AddErrorHandling((msg, code, data) => errorResponse = msg);
// Verify throws with no ID
await service.HandleDeleteCredentialRequest(new Credential(), contextMock.Object);
diff --git a/test/Microsoft.SqlTools.ServiceLayer.UnitTests/Formatter/TSqlFormatterServiceTests.cs b/test/Microsoft.SqlTools.ServiceLayer.UnitTests/Formatter/TSqlFormatterServiceTests.cs
index 8a3e393d..2a08a412 100644
--- a/test/Microsoft.SqlTools.ServiceLayer.UnitTests/Formatter/TSqlFormatterServiceTests.cs
+++ b/test/Microsoft.SqlTools.ServiceLayer.UnitTests/Formatter/TSqlFormatterServiceTests.cs
@@ -21,7 +21,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Formatter
{
public class TSqlFormatterServiceTests : FormatterUnitTestsBase
{
- private Mock workspaceMock;
+ private Mock workspaceMock;
private TextDocumentIdentifier textDocument;
DocumentFormattingParams docFormatParams;
DocumentRangeFormattingParams rangeFormatParams;
@@ -60,7 +60,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Formatter
C1 int NOT NULL,
C2 nvarchar(50) NULL
)");
-
+
private void SetupLanguageService(bool skipFile = false)
{
LanguageServiceMock.Setup(x => x.ShouldSkipNonMssqlFile(It.IsAny())).Returns(skipFile);
@@ -216,11 +216,11 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Formatter
await test(contextMock.Object);
VerifyResult(contextMock, verify);
}
-
+
public static void VerifyResult(Mock> contextMock, Action verify)
{
contextMock.Verify(c => c.SendResult(It.IsAny()), Times.Once);
- contextMock.Verify(c => c.SendError(It.IsAny(), It.IsAny()), Times.Never);
+ contextMock.Verify(c => c.SendError(It.IsAny(), It.IsAny(), It.IsAny()), Times.Never);
verify();
}
@@ -253,7 +253,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Formatter
};
return scriptFile;
}
-
+
}
}
diff --git a/test/Microsoft.SqlTools.ServiceLayer.UnitTests/LanguageServer/AutocompleteTests.cs b/test/Microsoft.SqlTools.ServiceLayer.UnitTests/LanguageServer/AutocompleteTests.cs
index 43a646fe..ff5ebe0c 100644
--- a/test/Microsoft.SqlTools.ServiceLayer.UnitTests/LanguageServer/AutocompleteTests.cs
+++ b/test/Microsoft.SqlTools.ServiceLayer.UnitTests/LanguageServer/AutocompleteTests.cs
@@ -56,15 +56,17 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.LanguageServer
var signatureRequestContext = new Mock>();
SignatureHelp result = null;
signatureRequestContext.Setup(rc => rc.SendResult(It.IsAny()))
- .Returns((signature) => {
+ .Returns((signature) =>
+ {
result = signature;
return Task.FromResult(0);
});
- signatureRequestContext.Setup(rc => rc.SendError(It.IsAny(), It.IsAny())).Returns(Task.FromResult(0));
+ signatureRequestContext.Setup(rc => rc.SendError(It.IsAny(), It.IsAny(), It.IsAny())).Returns(Task.FromResult(0));
langService.CurrentWorkspaceSettings.SqlTools.IntelliSense.EnableIntellisense = true;
- await langService.HandleDidChangeLanguageFlavorNotification(new LanguageFlavorChangeParams {
+ await langService.HandleDidChangeLanguageFlavorNotification(new LanguageFlavorChangeParams
+ {
Uri = textDocument.TextDocument.Uri,
Language = LanguageService.SQL_LANG.ToLower(),
Flavor = "NotMSSQL"
@@ -73,8 +75,8 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.LanguageServer
// verify that the response was sent with a null response value
signatureRequestContext.Verify(m => m.SendResult(It.IsAny()), Times.Once());
Assert.Null(result);
- signatureRequestContext.Verify(m => m.SendError(It.IsAny(), It.IsAny()), Times.Never());
- }
+ signatureRequestContext.Verify(m => m.SendError(It.IsAny(), It.IsAny(), It.IsAny()), Times.Never());
+ }
[Test]
public void AddOrUpdateScriptParseInfoNullUri()
@@ -94,7 +96,8 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.LanguageServer
var definitionRequestContext = new Mock>();
Location[] result = null;
definitionRequestContext.Setup(rc => rc.SendResult(It.IsAny()))
- .Returns((resultDetails) => {
+ .Returns((resultDetails) =>
+ {
result = resultDetails;
return Task.FromResult(0);
});
@@ -102,7 +105,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.LanguageServer
await langService.HandleDefinitionRequest(textDocument, definitionRequestContext.Object);
// Should get an empty array when passed
Assert.NotNull(result);
- Assert.True(result.Length == 0, $"Unexpected values passed to SendResult : [{ string.Join(",", (object[])result)}]");
+ Assert.True(result.Length == 0, $"Unexpected values passed to SendResult : [{string.Join(",", (object[])result)}]");
}
[Test]
@@ -126,7 +129,8 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.LanguageServer
// setup the mock for SendResult to capture the items
CompletionItem[] completionItems = null;
requestContext.Setup(x => x.SendResult(It.IsAny()))
- .Returns((resultDetails) => {
+ .Returns((resultDetails) =>
+ {
completionItems = resultDetails;
return Task.FromResult(0);
});
@@ -154,7 +158,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.LanguageServer
EndColumnNumber = 1,
EndOffset = 0
}
- };
+ };
var diagnostic = DiagnosticsHelper.GetDiagnosticFromMarker(scriptFileMarker);
Assert.AreEqual(diagnostic.Message, scriptFileMarker.Message);
}
@@ -211,13 +215,13 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.LanguageServer
Contents = sqlText
};
-
+
ParseResult parseResult = langService.ParseAndBind(scriptFile, null);
ScriptParseInfo scriptParseInfo = langService.GetScriptParseInfo(scriptFile.ClientUri, true);
return new ScriptDocumentInfo(textDocumentPosition, scriptFile, scriptParseInfo);
}
-
+
[Test]
//complete select query with the cursor at * should return a sqlselectstarexpression object.
[TestCase("select * from sys.all_objects", 0, 8, "SelectStarExpression is not returned on complete select query with star")]
@@ -250,7 +254,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.LanguageServer
[Test]
public void TryGetSqlSelectStarStatementNullFileTest()
{
- Assert.Null(AutoCompleteHelper.TryGetSelectStarStatement(null, null), "null is not returned on null file");
+ Assert.Null(AutoCompleteHelper.TryGetSelectStarStatement(null, null), "null is not returned on null file");
}
[Test]
diff --git a/test/Microsoft.SqlTools.ServiceLayer.UnitTests/LanguageServer/LanguageServiceTestBase.cs b/test/Microsoft.SqlTools.ServiceLayer.UnitTests/LanguageServer/LanguageServiceTestBase.cs
index d65203cb..1451542f 100644
--- a/test/Microsoft.SqlTools.ServiceLayer.UnitTests/LanguageServer/LanguageServiceTestBase.cs
+++ b/test/Microsoft.SqlTools.ServiceLayer.UnitTests/LanguageServer/LanguageServiceTestBase.cs
@@ -92,7 +92,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.LanguageServer
requestContext = new Mock>();
requestContext.Setup(rc => rc.SendResult(It.IsAny()))
.Returns(Task.FromResult(0));
- requestContext.Setup(rc => rc.SendError(It.IsAny(), It.IsAny())).Returns(Task.FromResult(0));
+ requestContext.Setup(rc => rc.SendError(It.IsAny(), It.IsAny(), It.IsAny())).Returns(Task.FromResult(0));
requestContext.Setup(r => r.SendEvent(It.IsAny>(), It.IsAny())).Returns(Task.FromResult(0));
requestContext.Setup(r => r.SendEvent(It.IsAny>(), It.IsAny())).Returns(Task.FromResult(0));
diff --git a/test/Microsoft.SqlTools.ServiceLayer.UnitTests/LanguageServer/PeekDefinitionTests.cs b/test/Microsoft.SqlTools.ServiceLayer.UnitTests/LanguageServer/PeekDefinitionTests.cs
index e6d45a19..42f6ec15 100644
--- a/test/Microsoft.SqlTools.ServiceLayer.UnitTests/LanguageServer/PeekDefinitionTests.cs
+++ b/test/Microsoft.SqlTools.ServiceLayer.UnitTests/LanguageServer/PeekDefinitionTests.cs
@@ -35,7 +35,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.LanguageServer
await definitionTask;
// verify that send result was called once and send error was not called
requestContext.Verify(m => m.SendResult(It.IsAny()), Times.Once());
- requestContext.Verify(m => m.SendError(It.IsAny(), It.IsAny()), Times.Never());
+ requestContext.Verify(m => m.SendError(It.IsAny(), It.IsAny(), It.IsAny()), Times.Never());
}
///
diff --git a/test/Microsoft.SqlTools.ServiceLayer.UnitTests/ObjectExplorer/ObjectExplorerServiceTests.cs b/test/Microsoft.SqlTools.ServiceLayer.UnitTests/ObjectExplorer/ObjectExplorerServiceTests.cs
index 1a6a246d..aa7b6667 100644
--- a/test/Microsoft.SqlTools.ServiceLayer.UnitTests/ObjectExplorer/ObjectExplorerServiceTests.cs
+++ b/test/Microsoft.SqlTools.ServiceLayer.UnitTests/ObjectExplorer/ObjectExplorerServiceTests.cs
@@ -66,7 +66,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.ObjectExplorer
{
object errorResponse = null;
var contextMock = RequestContextMocks.Create(null)
- .AddErrorHandling((errorMessage, errorCode) => errorResponse = errorMessage);
+ .AddErrorHandling((errorMessage, errorCode, data) => errorResponse = errorMessage);
await service.HandleCreateSessionRequest(null, contextMock.Object);
VerifyErrorSent(contextMock);
diff --git a/test/Microsoft.SqlTools.ServiceLayer.UnitTests/ServiceTestBase.cs b/test/Microsoft.SqlTools.ServiceLayer.UnitTests/ServiceTestBase.cs
index eb4adbaa..ac359951 100644
--- a/test/Microsoft.SqlTools.ServiceLayer.UnitTests/ServiceTestBase.cs
+++ b/test/Microsoft.SqlTools.ServiceLayer.UnitTests/ServiceTestBase.cs
@@ -61,21 +61,21 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests
protected void VerifyResult(Mock> contextMock, Action verify, TResult actual)
{
contextMock.Verify(c => c.SendResult(It.IsAny()), Times.Once);
- contextMock.Verify(c => c.SendError(It.IsAny(), It.IsAny()), Times.Never);
+ contextMock.Verify(c => c.SendError(It.IsAny(), It.IsAny(), It.IsAny()), Times.Never);
verify(actual);
}
protected void VerifyResult(Mock> contextMock, Action verify, T actual)
{
contextMock.Verify(c => c.SendResult(It.IsAny()), Times.Once);
- contextMock.Verify(c => c.SendError(It.IsAny(), It.IsAny()), Times.Never);
+ contextMock.Verify(c => c.SendError(It.IsAny(), It.IsAny(), It.IsAny()), Times.Never);
verify(actual);
}
protected void VerifyErrorSent(Mock> contextMock)
{
contextMock.Verify(c => c.SendResult(It.IsAny()), Times.Never);
- contextMock.Verify(c => c.SendError(It.IsAny(), It.IsAny()), Times.Once);
+ contextMock.Verify(c => c.SendError(It.IsAny(), It.IsAny(), It.IsAny()), Times.Once);
}
}
}
diff --git a/test/Microsoft.SqlTools.ServiceLayer.UnitTests/TaskServices/TaskServiceTests.cs b/test/Microsoft.SqlTools.ServiceLayer.UnitTests/TaskServices/TaskServiceTests.cs
index c4caa50b..eba08346 100644
--- a/test/Microsoft.SqlTools.ServiceLayer.UnitTests/TaskServices/TaskServiceTests.cs
+++ b/test/Microsoft.SqlTools.ServiceLayer.UnitTests/TaskServices/TaskServiceTests.cs
@@ -39,7 +39,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.TaskServices
{
object errorResponse = null;
var contextMock = RequestContextMocks.Create(null)
- .AddErrorHandling((errorMessage, errorCode) => errorResponse = errorMessage);
+ .AddErrorHandling((errorMessage, errorCode, data) => errorResponse = errorMessage);
await service.HandleListTasksRequest(null, contextMock.Object);
VerifyErrorSent(contextMock);
diff --git a/test/Microsoft.SqlTools.ServiceLayer.UnitTests/Utility/TestUtils.cs b/test/Microsoft.SqlTools.ServiceLayer.UnitTests/Utility/TestUtils.cs
index bef6bbe1..caae0621 100644
--- a/test/Microsoft.SqlTools.ServiceLayer.UnitTests/Utility/TestUtils.cs
+++ b/test/Microsoft.SqlTools.ServiceLayer.UnitTests/Utility/TestUtils.cs
@@ -46,20 +46,20 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.Utility
public static void VerifyErrorSent(Mock> contextMock)
{
contextMock.Verify(c => c.SendResult(It.IsAny()), Times.Never);
- contextMock.Verify(c => c.SendError(It.IsAny(), It.IsAny()), Times.Once);
+ contextMock.Verify(c => c.SendError(It.IsAny(), It.IsAny(), It.IsAny()), Times.Once);
}
public static void VerifyResult(Mock> contextMock, U expected, U actual)
{
contextMock.Verify(c => c.SendResult(It.IsAny()), Times.Once);
Assert.AreEqual(expected, actual);
- contextMock.Verify(c => c.SendError(It.IsAny(), It.IsAny()), Times.Never);
+ contextMock.Verify(c => c.SendError(It.IsAny(), It.IsAny(), It.IsAny()), Times.Never);
}
public static void VerifyResult(Mock> contextMock, Action verify, T actual)
{
contextMock.Verify(c => c.SendResult(It.IsAny()), Times.Once);
- contextMock.Verify(c => c.SendError(It.IsAny(), It.IsAny()), Times.Never);
+ contextMock.Verify(c => c.SendError(It.IsAny(), It.IsAny(), It.IsAny()), Times.Never);
verify(actual);
}