public async Task HandleRequestAsync_ProjectionNotFound_ReturnsNull() { // Arrange var requestInvoker = Mock.Of <LSPRequestInvoker>(MockBehavior.Strict); var projectionProvider = new Mock <LSPProjectionProvider>(MockBehavior.Strict).Object; Mock.Get(projectionProvider).Setup(projectionProvider => projectionProvider.GetProjectionAsync(It.IsAny <LSPDocumentSnapshot>(), It.IsAny <Position>(), CancellationToken.None)) .Returns(Task.FromResult <ProjectionResult>(null)); var documentMappingProvider = Mock.Of <LSPDocumentMappingProvider>(MockBehavior.Strict); var renameHandler = new RenameHandler(requestInvoker, DocumentManager, projectionProvider, documentMappingProvider, LoggerProvider); var renameRequest = new RenameParams() { Position = new Position(0, 1), NewName = "NewName", TextDocument = new TextDocumentIdentifier() { Uri = Uri }, }; // Act var result = await renameHandler.HandleRequestAsync(renameRequest, new ClientCapabilities(), CancellationToken.None).ConfigureAwait(false); // Assert Assert.Null(result); }
public async Task HandleRequestAsync_HtmlProjection_ReturnsNull() { // Arrange var documentManager = new TestDocumentManager(); documentManager.AddDocument(Uri, Mock.Of <LSPDocumentSnapshot>()); var requestInvoker = Mock.Of <LSPRequestInvoker>(); var projectionProvider = GetProjectionProvider(new ProjectionResult() { LanguageKind = RazorLanguageKind.Html }); var documentMappingProvider = Mock.Of <LSPDocumentMappingProvider>(); var renameHandler = new RenameHandler(requestInvoker, documentManager, projectionProvider, documentMappingProvider); var renameRequest = new RenameParams() { Position = new Position(0, 1), NewName = "NewName", TextDocument = new TextDocumentIdentifier() { Uri = Uri }, }; // Act var result = await renameHandler.HandleRequestAsync(renameRequest, new ClientCapabilities(), CancellationToken.None).ConfigureAwait(false); // Assert Assert.Null(result); }
public async Task HandleRequestAsync_CSharpProjection_RemapsWorkspaceEdit() { // Arrange var called = false; var expectedEdit = new WorkspaceEdit(); var documentManager = new TestDocumentManager(); documentManager.AddDocument(Uri, Mock.Of <LSPDocumentSnapshot>()); var requestInvoker = GetRequestInvoker <RenameParams, WorkspaceEdit>( new WorkspaceEdit(), (method, serverContentType, renameParams, ct) => { Assert.Equal(Methods.TextDocumentRenameName, method); Assert.Equal(RazorLSPConstants.CSharpContentTypeName, serverContentType); called = true; }); var projectionProvider = GetProjectionProvider(new ProjectionResult() { LanguageKind = RazorLanguageKind.CSharp }); var documentMappingProvider = GetDocumentMappingProvider(expectedEdit); var renameHandler = new RenameHandler(requestInvoker, documentManager, projectionProvider, documentMappingProvider); var renameRequest = new RenameParams() { Position = new Position(0, 1), NewName = "NewName", TextDocument = new TextDocumentIdentifier() { Uri = Uri }, }; // Act var result = await renameHandler.HandleRequestAsync(renameRequest, new ClientCapabilities(), CancellationToken.None).ConfigureAwait(false); // Assert Assert.True(called); Assert.Equal(expectedEdit, result); // Actual remapping behavior is tested in LSPDocumentMappingProvider tests. }
public async Task HandleRequestAsync_DocumentNotFound_ReturnsNull() { // Arrange var documentManager = new TestDocumentManager(); var requestInvoker = Mock.Of <LSPRequestInvoker>(MockBehavior.Strict); var projectionProvider = Mock.Of <LSPProjectionProvider>(MockBehavior.Strict); var documentMappingProvider = Mock.Of <LSPDocumentMappingProvider>(MockBehavior.Strict); var renameHandler = new RenameHandler(requestInvoker, documentManager, projectionProvider, documentMappingProvider, LoggerProvider); var renameRequest = new RenameParams() { Position = new Position(0, 1), NewName = "NewName", TextDocument = new TextDocumentIdentifier() { Uri = Uri }, }; // Act var result = await renameHandler.HandleRequestAsync(renameRequest, new ClientCapabilities(), CancellationToken.None).ConfigureAwait(false); // Assert Assert.Null(result); }