public async void ResolveCodeActionsAsync_ReturnsCodeActions() { // Arrange var testCSharpDocUri = new Uri("C:/path/to/file.razor.g.cs"); var requestInvoker = new Mock <LSPRequestInvoker>(); var documentManager = new Mock <TrackingLSPDocumentManager>(); var expectedResponse = new VSCodeAction() { Title = "Something", Data = new object() }; requestInvoker.Setup(invoker => invoker.ReinvokeRequestOnServerAsync <VSCodeAction, VSCodeAction>( MSLSPMethods.TextDocumentCodeActionResolveName, LanguageServerKind.CSharp.ToContentType(), It.IsAny <VSCodeAction>(), It.IsAny <CancellationToken>() )).Returns(Task.FromResult(expectedResponse)); var target = new DefaultRazorLanguageServerCustomMessageTarget(documentManager.Object, JoinableTaskContext, requestInvoker.Object); var request = new VSCodeAction() { Title = "Something", }; // Act var result = await target.ResolveCodeActionsAsync(request, CancellationToken.None).ConfigureAwait(false); // Assert Assert.Equal(expectedResponse, result); }
public async Task ResolveCodeActionsAsync_ReturnsSingleCodeAction() { // Arrange var requestInvoker = new Mock <LSPRequestInvoker>(MockBehavior.Strict); var csharpVirtualDocument = new CSharpVirtualDocumentSnapshot(new Uri("C:/path/to/file.razor.g.cs"), TextBuffer.CurrentSnapshot, hostDocumentSyncVersion: 0); var documentManager = new TestDocumentManager(); var razorUri = new Uri("C:/path/to/file.razor"); documentManager.AddDocument(razorUri, new TestLSPDocumentSnapshot(razorUri, version: 0, "Some Content", csharpVirtualDocument)); var expectedCodeAction = new VSInternalCodeAction() { Title = "Something", Data = new object() }; var unexpectedCodeAction = new VSInternalCodeAction() { Title = "Something Else", Data = new object() }; async IAsyncEnumerable <ReinvocationResponse <VSInternalCodeAction> > GetExpectedResultsAsync() { yield return(new ReinvocationResponse <VSInternalCodeAction>("languageClient", expectedCodeAction)); yield return(new ReinvocationResponse <VSInternalCodeAction>("languageClient", unexpectedCodeAction)); await Task.CompletedTask; } var expectedResponses = GetExpectedResultsAsync(); requestInvoker.Setup(invoker => invoker.ReinvokeRequestOnMultipleServersAsync <VSInternalCodeAction, VSInternalCodeAction>( It.IsAny <ITextBuffer>(), Methods.CodeActionResolveName, It.IsAny <Func <JToken, bool> >(), It.IsAny <VSInternalCodeAction>(), It.IsAny <CancellationToken>() )).Returns(expectedResponses); var uIContextManager = new Mock <RazorUIContextManager>(MockBehavior.Strict); var disposable = new Mock <IDisposable>(MockBehavior.Strict); var clientOptionsMonitor = new Mock <RazorLSPClientOptionsMonitor>(MockBehavior.Strict); var documentSynchronizer = new Mock <LSPDocumentSynchronizer>(MockBehavior.Strict); var target = new DefaultRazorLanguageServerCustomMessageTarget( documentManager, JoinableTaskContext, requestInvoker.Object, uIContextManager.Object, disposable.Object, clientOptionsMonitor.Object, documentSynchronizer.Object); var codeAction = new VSInternalCodeAction() { Title = "Something", }; var request = new RazorResolveCodeActionParams(razorUri, codeAction); // Act var result = await target.ResolveCodeActionsAsync(request, CancellationToken.None).ConfigureAwait(false); // Assert Assert.Equal(expectedCodeAction.Title, result.Title); }
public async void ResolveCodeActionsAsync_ReturnsSingleCodeAction() { // Arrange var testCSharpDocUri = new Uri("C:/path/to/file.razor.g.cs"); var requestInvoker = new Mock <LSPRequestInvoker>(MockBehavior.Strict); var documentManager = new Mock <TrackingLSPDocumentManager>(MockBehavior.Strict); var expectedCodeAction = new VSCodeAction() { Title = "Something", Data = new object() }; var unexpectedCodeAction = new VSCodeAction() { Title = "Something Else", Data = new object() }; IEnumerable <VSCodeAction> expectedResponses = new List <VSCodeAction>() { expectedCodeAction, unexpectedCodeAction }; requestInvoker.Setup(invoker => invoker.ReinvokeRequestOnMultipleServersAsync <VSCodeAction, VSCodeAction>( MSLSPMethods.TextDocumentCodeActionResolveName, LanguageServerKind.CSharp.ToContentType(), It.IsAny <Func <JToken, bool> >(), It.IsAny <VSCodeAction>(), It.IsAny <CancellationToken>() )).Returns(Task.FromResult(expectedResponses)); var uIContextManager = new Mock <RazorUIContextManager>(MockBehavior.Strict); var disposable = new Mock <IDisposable>(MockBehavior.Strict); var clientOptionsMonitor = new Mock <RazorLSPClientOptionsMonitor>(MockBehavior.Strict); var target = new DefaultRazorLanguageServerCustomMessageTarget( documentManager.Object, JoinableTaskContext, requestInvoker.Object, uIContextManager.Object, disposable.Object, clientOptionsMonitor.Object); var request = new VSCodeAction() { Title = "Something", }; // Act var result = await target.ResolveCodeActionsAsync(request, CancellationToken.None).ConfigureAwait(false); // Assert Assert.Equal(expectedCodeAction.Title, result.Title); }