public async Task HandleRequestAsync_NonNullOriginalTextEdit_DoesNotRemapTextEdit() { // Arrange var originalEdit = new TextEdit() { NewText = "original" }; var mappedEdit = new TextEdit() { NewText = "mapped" }; DocumentMappingProvider.AddMapping(originalEdit, mappedEdit); var requestedCompletionItem = new CompletionItem() { TextEdit = originalEdit, }; AssociateRequest(LanguageServerKind.CSharp, requestedCompletionItem, CompletionRequestContextCache, LoggerProvider); var resolvedCompletionItem = new CompletionItem() { InsertText = "DateTime", TextEdit = originalEdit, }; var requestInvoker = CreateRequestInvoker((method, serverContentType, completionItem) => resolvedCompletionItem); var handler = new CompletionResolveHandler(requestInvoker, DocumentMappingProvider, FormattingOptionsProvider, CompletionRequestContextCache, LoggerProvider); // Act var result = await handler.HandleRequestAsync(requestedCompletionItem, new ClientCapabilities(), CancellationToken.None).ConfigureAwait(false); // Assert Assert.Same(originalEdit, result.TextEdit); }
public async Task HandleRequestAsync_NullInsertTextAndTextEdit_RemapsAdditionalTextEdits() { // Arrange var originalEdit = new TextEdit() { NewText = "original" }; var mappedEdit = new TextEdit() { NewText = "mapped" }; DocumentMappingProvider.AddMapping(originalEdit, mappedEdit); var requestedCompletionItem = new CompletionItem(); AssociateRequest(LanguageServerKind.CSharp, requestedCompletionItem, CompletionRequestContextCache, LoggerProvider); var resolvedCompletionItem = new CompletionItem() { AdditionalTextEdits = new[] { originalEdit }, }; var requestInvoker = CreateRequestInvoker((method, languageServerName, completionItem) => resolvedCompletionItem); var handler = new CompletionResolveHandler(requestInvoker, DocumentManager, DocumentMappingProvider, FormattingOptionsProvider, CompletionRequestContextCache, LoggerProvider); // Act var result = await handler.HandleRequestAsync(requestedCompletionItem, new ClientCapabilities(), CancellationToken.None).ConfigureAwait(false); // Assert Assert.Equal(new[] { mappedEdit }, result.AdditionalTextEdits); }