Example #1
0
        public void Publish_SecondTime_PublishesSourceTextDifferences()
        {
            // Arrange
            var csharpPublisher   = new DefaultCSharpPublisher(Dispatcher, new Lazy <ILanguageServer>(() => Server));
            var initialSourceText = SourceText.From("// Initial content");

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

            // Act
            csharpPublisher.Publish("/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);
        }
Example #2
0
        public void ProjectSnapshotManager_DocumentRemoved_RepublishesTextChanges()
        {
            // Arrange
            var csharpPublisher = new DefaultCSharpPublisher(Dispatcher, new Lazy <ILanguageServer>(() => Server));

            csharpPublisher.Initialize(ProjectManager);
            var sourceTextContent = "// The content";
            var initialSourceText = SourceText.From(sourceTextContent);

            csharpPublisher.Publish(HostDocument.FilePath, initialSourceText, 123);

            // Act
            ProjectManager.DocumentRemoved(HostProject, HostDocument);
            csharpPublisher.Publish(HostDocument.FilePath, initialSourceText, 123);

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

            Assert.Equal(HostDocument.FilePath, updateRequest.HostDocumentFilePath);
            var textChange = Assert.Single(updateRequest.Changes);

            Assert.Equal(sourceTextContent, textChange.NewText);
            Assert.Equal(123, updateRequest.HostDocumentVersion);
        }
Example #3
0
        public void Publish_SecondTime_IdenticalContent_NoTextChanges()
        {
            // Arrange
            var csharpPublisher   = new DefaultCSharpPublisher(Dispatcher, new Lazy <ILanguageServer>(() => Server));
            var sourceTextContent = "// The content";
            var initialSourceText = SourceText.From(sourceTextContent);

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

            // Act
            csharpPublisher.Publish("/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);
        }
Example #4
0
        public void Publish_DifferentFileSameContent_PublishesEverything()
        {
            // Arrange
            var csharpPublisher   = new DefaultCSharpPublisher(Dispatcher, new Lazy <ILanguageServer>(() => Server));
            var sourceTextContent = "// The content";
            var initialSourceText = SourceText.From(sourceTextContent);

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

            // Act
            csharpPublisher.Publish("/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);
        }
Example #5
0
        public void Publish_FirstTime_PublishesEntireSourceText()
        {
            // Arrange
            var csharpPublisher = new DefaultCSharpPublisher(Dispatcher, new Lazy <ILanguageServer>(() => Server));
            var content         = "// C# content";
            var sourceText      = SourceText.From(content);

            // Act
            csharpPublisher.Publish("/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);
        }