public void PublishHtml_SecondTime_PublishesSourceTextDifferences()
        {
            // Arrange
            var generatedDocumentPublisher = new DefaultGeneratedDocumentPublisher(Dispatcher, new Lazy <ILanguageServer>(() => Server));
            var initialSourceText          = SourceText.From("HTML content");

            generatedDocumentPublisher.PublishHtml("/path/to/file.razor", initialSourceText, 123);
            var change = new TextChange(
                new TextSpan(initialSourceText.Length, 0),
                "!!");
            var changedSourceText = initialSourceText.WithChanges(change);

            // Act
            generatedDocumentPublisher.PublishHtml("/path/to/file.razor", changedSourceText, 124);

            // Assert
            Assert.Equal(2, Server.UpdateRequests.Count);
            var updateRequest = Server.UpdateRequests.Last();

            Assert.Equal("/path/to/file.razor", updateRequest.HostDocumentFilePath);
            var textChange = Assert.Single(updateRequest.Changes);

            Assert.Equal(change, textChange);
            Assert.Equal(124, updateRequest.HostDocumentVersion);
        }
        public void ProjectSnapshotManager_DocumentChanged_OpenDocument_VersionEquivalent_Noops_Html()
        {
            // Arrange
            var generatedDocumentPublisher = new DefaultGeneratedDocumentPublisher(Dispatcher, new Lazy <ILanguageServer>(() => Server));

            generatedDocumentPublisher.Initialize(ProjectManager);
            var sourceTextContent = "<!-- The content -->";
            var initialSourceText = SourceText.From(sourceTextContent);

            generatedDocumentPublisher.PublishHtml(HostDocument.FilePath, initialSourceText, 123);

            // Act
            ProjectManager.DocumentOpened(HostProject.FilePath, HostDocument.FilePath, initialSourceText);
            generatedDocumentPublisher.PublishHtml(HostDocument.FilePath, initialSourceText, 123);

            // Assert
            var updateRequest = Assert.Single(Server.UpdateRequests);

            Assert.Equal(HostDocument.FilePath, updateRequest.HostDocumentFilePath);
            Assert.Equal(123, updateRequest.HostDocumentVersion);
        }
        public void PublishHtml_SecondTime_IdenticalContent_NoTextChanges()
        {
            // Arrange
            var generatedDocumentPublisher = new DefaultGeneratedDocumentPublisher(Dispatcher, new Lazy <ILanguageServer>(() => Server));
            var sourceTextContent          = "HTMl content";
            var initialSourceText          = SourceText.From(sourceTextContent);

            generatedDocumentPublisher.PublishHtml("/path/to/file.razor", initialSourceText, 123);
            var identicalSourceText = SourceText.From(sourceTextContent);

            // Act
            generatedDocumentPublisher.PublishHtml("/path/to/file.razor", identicalSourceText, 124);

            // Assert
            Assert.Equal(2, Server.UpdateRequests.Count);
            var updateRequest = Server.UpdateRequests.Last();

            Assert.Equal("/path/to/file.razor", updateRequest.HostDocumentFilePath);
            Assert.Empty(updateRequest.Changes);
            Assert.Equal(124, updateRequest.HostDocumentVersion);
        }
        public void PublishHtml_DifferentFileSameContent_PublishesEverything()
        {
            // Arrange
            var generatedDocumentPublisher = new DefaultGeneratedDocumentPublisher(Dispatcher, new Lazy <ILanguageServer>(() => Server));
            var sourceTextContent          = "HTML content";
            var initialSourceText          = SourceText.From(sourceTextContent);

            generatedDocumentPublisher.PublishHtml("/path/to/file1.razor", initialSourceText, 123);
            var identicalSourceText = SourceText.From(sourceTextContent);

            // Act
            generatedDocumentPublisher.PublishHtml("/path/to/file2.razor", identicalSourceText, 123);

            // Assert
            Assert.Equal(2, Server.UpdateRequests.Count);
            var updateRequest = Server.UpdateRequests.Last();

            Assert.Equal("/path/to/file2.razor", updateRequest.HostDocumentFilePath);
            var textChange = Assert.Single(updateRequest.Changes);

            Assert.Equal(sourceTextContent, textChange.NewText);
            Assert.Equal(123, updateRequest.HostDocumentVersion);
        }
Esempio n. 5
0
        public void ProjectSnapshotManager_DocumentChanged_OpenDocument_PublishesEmptyTextChanges_Html()
        {
            // Arrange
            var generatedDocumentPublisher = new DefaultGeneratedDocumentPublisher(Dispatcher, ServerClient, LoggerFactory);

            generatedDocumentPublisher.Initialize(ProjectManager);
            var sourceTextContent = "<!-- The content -->";
            var initialSourceText = SourceText.From(sourceTextContent);

            generatedDocumentPublisher.PublishHtml(HostDocument.FilePath, initialSourceText, 123);

            // Act
            ProjectManager.DocumentOpened(HostProject.FilePath, HostDocument.FilePath, initialSourceText);
            generatedDocumentPublisher.PublishHtml(HostDocument.FilePath, initialSourceText, 124);

            // Assert
            Assert.Equal(2, ServerClient.UpdateRequests.Count);
            var updateRequest = ServerClient.UpdateRequests.Last();

            Assert.Equal(HostDocument.FilePath, updateRequest.HostDocumentFilePath);
            Assert.Empty(updateRequest.Changes);
            Assert.Equal(124, updateRequest.HostDocumentVersion);
        }
        public void PublishHtml_FirstTime_PublishesEntireSourceText()
        {
            // Arrange
            var generatedDocumentPublisher = new DefaultGeneratedDocumentPublisher(Dispatcher, new Lazy <ILanguageServer>(() => Server));
            var content    = "HTML content";
            var sourceText = SourceText.From(content);

            // Act
            generatedDocumentPublisher.PublishHtml("/path/to/file.razor", sourceText, 123);

            // Assert
            var updateRequest = Assert.Single(Server.UpdateRequests);

            Assert.Equal("/path/to/file.razor", updateRequest.HostDocumentFilePath);
            var textChange = Assert.Single(updateRequest.Changes);

            Assert.Equal(content, textChange.NewText);
            Assert.Equal(123, updateRequest.HostDocumentVersion);
        }