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

            var response = new RazorMapToDocumentRangesResponse()
            {
                Ranges = new[] {
                    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.ReinvokeRequestOnServerAsync <RazorMapToDocumentRangesParams, RazorMapToDocumentRangesResponse>(
                       It.IsAny <ITextBuffer>(),
                       LanguageServerConstants.RazorMapToDocumentRangesEndpoint,
                       RazorLSPConstants.RazorLanguageServerName,
                       It.IsAny <Func <JToken, bool> >(),
                       It.IsAny <RazorMapToDocumentRangesParams>(),
                       It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(new ReinvocationResponse <RazorMapToDocumentRangesResponse>("TestLanguageClient", response)));

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

            // Act
            var result = await mappingProvider.MapToDocumentRangesAsync(RazorLanguageKind.CSharp, uri, new[] { projectedRange }, CancellationToken.None).ConfigureAwait(false);

            // Assert
            Assert.NotNull(result);
            Assert.Equal(1, result.HostDocumentVersion);
            var actualRange = result.Ranges[0];

            Assert.Equal(new Position(1, 1), actualRange.Start);
            Assert.Equal(new Position(3, 3), actualRange.End);
        }
Example #2
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);
        }