public async Task ApplyChangesAsync_VirtualHtmlDocumentNotFound_ReturnsEmptyDiagnosticResponse()
        {
            // Arrange
            var diagnosticsProvider = Mock.Of <LSPDiagnosticsTranslator>(MockBehavior.Strict);

            var testVirtualDocument          = new TestVirtualDocumentSnapshot(RazorUri, hostDocumentVersion: 0);
            LSPDocumentSnapshot testDocument = new TestLSPDocumentSnapshot(RazorUri, version: 0, testVirtualDocument);
            var documentManager = new Mock <TrackingLSPDocumentManager>(MockBehavior.Strict);

            documentManager.Setup(manager => manager.TryGetDocument(It.IsAny <Uri>(), out testDocument))
            .Returns(true);

            var htmlDiagnosticsInterceptor = new RazorHtmlPublishDiagnosticsInterceptor(documentManager.Object, diagnosticsProvider, LoggerProvider);
            var diagnosticRequest          = new VSPublishDiagnosticParams()
            {
                Diagnostics = Diagnostics,
                Mode        = null,
                Uri         = RazorVirtualHtmlUri
            };

            // Act
            var result = await htmlDiagnosticsInterceptor.ApplyChangesAsync(JToken.FromObject(diagnosticRequest), string.Empty, cancellationToken : default).ConfigureAwait(false);

            // Assert
            var updatedParams = result.UpdatedToken.ToObject <VSPublishDiagnosticParams>();

            Assert.Empty(updatedParams.Diagnostics);
            Assert.Equal(RazorUri, updatedParams.Uri);
            Assert.True(result.ChangedDocumentUri);
        }
            static InterceptionResult CreateResponse(VSPublishDiagnosticParams diagnosticParams)
            {
                var newToken           = JToken.FromObject(diagnosticParams);
                var interceptionResult = new InterceptionResult(newToken, changedDocumentUri: true);

                return(interceptionResult);
            }
        public async Task ApplyChangesAsync_RazorUriNotSupported_ReturnsDefaultResponse()
        {
            // Arrange
            var documentManager     = new TestDocumentManager();
            var diagnosticsProvider = Mock.Of <LSPDiagnosticsTranslator>(MockBehavior.Strict);

            var htmlDiagnosticsInterceptor = new RazorHtmlPublishDiagnosticsInterceptor(documentManager, diagnosticsProvider, LoggerProvider);
            var diagnosticRequest          = new VSPublishDiagnosticParams()
            {
                Diagnostics = Diagnostics,
                Mode        = null,
                Uri         = RazorUri
            };
            var token = JToken.FromObject(diagnosticRequest);

            // Act
            var result = await htmlDiagnosticsInterceptor.ApplyChangesAsync(token, containedLanguageName : string.Empty, cancellationToken : default).ConfigureAwait(false);

            // Assert
            Assert.Same(token, result.UpdatedToken);
            Assert.False(result.ChangedDocumentUri);
        }
        public async Task ApplyChangesAsync_ProcessesDiagnostics_ReturnsDiagnosticResponse()
        {
            // Arrange
            var documentManager     = CreateDocumentManager();
            var diagnosticsProvider = GetDiagnosticsProvider();

            var htmlDiagnosticsInterceptor = new RazorHtmlPublishDiagnosticsInterceptor(documentManager, diagnosticsProvider, LoggerProvider);
            var diagnosticRequest          = new VSPublishDiagnosticParams()
            {
                Diagnostics = Diagnostics,
                Mode        = null,
                Uri         = RazorVirtualHtmlUri
            };

            // Act
            var result = await htmlDiagnosticsInterceptor.ApplyChangesAsync(JToken.FromObject(diagnosticRequest), string.Empty, cancellationToken : default).ConfigureAwait(false);

            // Assert
            var updatedParams = result.UpdatedToken.ToObject <VSPublishDiagnosticParams>();

            Assert.Equal(Diagnostics, updatedParams.Diagnostics);
            Assert.Equal(RazorUri, updatedParams.Uri);
            Assert.True(result.ChangedDocumentUri);
        }
Example #5
0
 static InterceptionResult CreateEmptyDiagnosticsResponse(VSPublishDiagnosticParams diagnosticParams)
 {
     diagnosticParams.Diagnostics = Array.Empty <Diagnostic>();
     return(CreateResponse(diagnosticParams));
 }