public void TryGetDocument_TrackedDocument_ReturnsTrue() { // Arrange var manager = new DefaultLSPDocumentManager(JoinableTaskContext, UriProvider, LSPDocumentFactory, ChangeTriggers); manager.TrackDocument(TextBuffer); // Act var result = manager.TryGetDocument(Uri, out var lspDocument); // Assert Assert.True(result); Assert.Same(LSPDocumentSnapshot, lspDocument); }
public void TrackDocument_TriggersDocumentAdded() { // Arrange var manager = new DefaultLSPDocumentManager(JoinableTaskContext, UriProvider, LSPDocumentFactory, ChangeTriggers); var changedCalled = false; manager.Changed += (sender, args) => { changedCalled = true; Assert.Null(args.Old); Assert.Same(LSPDocumentSnapshot, args.New); Assert.Equal(LSPDocumentChangeKind.Added, args.Kind); }; // Act manager.TrackDocument(TextBuffer); // Assert Assert.True(changedCalled); }
public void UpdateVirtualDocument_Noops_NoChangesSameVersion() { // Arrange var manager = new DefaultLSPDocumentManager(JoinableTaskContext, UriProvider, LSPDocumentFactory, ChangeTriggers); manager.TrackDocument(TextBuffer); var changedCalled = false; manager.Changed += (sender, args) => { changedCalled = true; }; var changes = Array.Empty <TextChange>(); // Act manager.UpdateVirtualDocument <TestVirtualDocument>(Uri, changes, 123); // Assert Assert.False(changedCalled); }
public void UpdateVirtualDocument_InvokesVirtualDocumentChanged() { // Arrange var manager = new DefaultLSPDocumentManager(JoinableTaskContext, UriProvider, LSPDocumentFactory, ChangeTriggers); manager.TrackDocument(TextBuffer); var changedCalled = false; manager.Changed += (sender, args) => { changedCalled = true; Assert.Same(LSPDocumentSnapshot, args.Old); Assert.NotSame(LSPDocumentSnapshot, args.New); Assert.Equal(LSPDocumentChangeKind.VirtualDocumentChanged, args.Kind); }; var changes = new[] { new TextChange(new TextSpan(1, 1), string.Empty) }; // Act manager.UpdateVirtualDocument <TestVirtualDocument>(Uri, changes, 123); // Assert Assert.True(changedCalled); }