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); }
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); }
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); }
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); }
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); }