public void TryGetDocument_UntrackedDocument_ReturnsFalse()
        {
            // Arrange
            var manager = new DefaultLSPDocumentManager(JoinableTaskContext, UriProvider, LSPDocumentFactory, ChangeTriggers);

            manager.TrackDocument(TextBuffer);
            manager.UntrackDocument(TextBuffer);

            // Act
            var result = manager.TryGetDocument(Uri, out var lspDocument);

            // Assert
            Assert.False(result);
            Assert.Null(lspDocument);
        }
        public void UntrackDocument_TriggersDocumentRemoved()
        {
            // Arrange
            var manager = new DefaultLSPDocumentManager(JoinableTaskContext, UriProvider, LSPDocumentFactory, ChangeTriggers);

            manager.TrackDocument(TextBuffer);
            var changedCalled = false;

            manager.Changed += (sender, args) =>
            {
                changedCalled = true;
                Assert.Null(args.New);
                Assert.Same(LSPDocumentSnapshot, args.Old);
                Assert.Equal(LSPDocumentChangeKind.Removed, args.Kind);
            };

            // Act
            manager.UntrackDocument(TextBuffer);

            // Assert
            Assert.True(changedCalled);
        }