Exemplo n.º 1
0
        public async Task RazorMapToDocumentRangeAsync_InvokesLanguageServer()
        {
            // Arrange
            var uri = new Uri("file:///some/folder/to/file.razor");

            var response = new RazorMapToDocumentRangeResponse()
            {
                Range = new Range()
                {
                    Start = new Position(1, 1),
                    End   = new Position(3, 3),
                },
                HostDocumentVersion = 1
            };
            var requestInvoker = new Mock <LSPRequestInvoker>(MockBehavior.Strict);

            requestInvoker
            .Setup(r => r.RequestServerAsync <RazorMapToDocumentRangeParams, RazorMapToDocumentRangeResponse>(LanguageServerConstants.RazorMapToDocumentRangeEndpoint, LanguageServerKind.Razor, It.IsAny <RazorMapToDocumentRangeParams>(), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(response));

            var mappingProvider = new DefaultLSPDocumentMappingProvider(requestInvoker.Object);
            var projectedRange  = new Range()
            {
                Start = new Position(10, 10),
                End   = new Position(15, 15)
            };

            // Act
            var result = await mappingProvider.MapToDocumentRangeAsync(RazorLanguageKind.CSharp, uri, projectedRange, CancellationToken.None).ConfigureAwait(false);

            // Assert
            Assert.NotNull(result);
            Assert.Equal(1, result.HostDocumentVersion);
            Assert.Equal(new Position(1, 1), result.Range.Start);
            Assert.Equal(new Position(3, 3), result.Range.End);
        }