public async Task Handle_QueuesRefresh()
        {
            // Arrange
            var clientSettings = GetInitializedParams(semanticRefreshEnabled: true);
            var serverClient   = new TestClient(clientSettings);
            var errorReporter  = new TestErrorReporter();

            using var semanticTokensRefreshPublisher = new DefaultWorkspaceSemanticTokensRefreshPublisher(serverClient, errorReporter);
            var refreshEndpoint = new SemanticTokensRefreshEndpoint(semanticTokensRefreshPublisher);
            var refreshParams   = new SemanticTokensRefreshParams();

            // Act
            await refreshEndpoint.Handle(refreshParams, CancellationToken.None);

            semanticTokensRefreshPublisher.GetTestAccessor().WaitForEmpty();

            // Assert
            Assert.Equal(WorkspaceNames.SemanticTokensRefresh, serverClient.Requests.Single().Method);
        }
        private RazorSemanticTokensInfoService GetDefaultRazorSemanticTokenInfoService(
            Queue <DocumentSnapshot> documentSnapshots,
            ProvideSemanticTokensResponse?csharpTokens = null,
            int?documentVersion = 0)
        {
            var responseRouterReturns = new Mock <IResponseRouterReturns>(MockBehavior.Strict);

            responseRouterReturns
            .Setup(l => l.Returning <ProvideSemanticTokensResponse?>(It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(csharpTokens));

            var languageServer = new Mock <ClientNotifierServiceBase>(MockBehavior.Strict);

            languageServer
            .Setup(l => l.SendRequestAsync(LanguageServerConstants.RazorProvideSemanticTokensRangeEndpoint, It.IsAny <OSharp.SemanticTokensParams>()))
            .Returns(Task.FromResult(responseRouterReturns.Object));

            var documentMappingService           = new DefaultRazorDocumentMappingService(TestLoggerFactory.Instance);
            var loggingFactory                   = TestLoggerFactory.Instance;
            var projectSnapshotManagerDispatcher = Dispatcher;
            var documentResolver                 = new TestDocumentResolver(documentSnapshots);

            var documentVersionCache = new Mock <DocumentVersionCache>(MockBehavior.Strict);

            documentVersionCache.Setup(c => c.TryGetDocumentVersion(It.IsAny <DocumentSnapshot>(), out documentVersion))
            .Returns(true);

            var testClient    = new TestClient();
            var errorReporter = new LanguageServerErrorReporter(loggingFactory);
            var semanticTokensRefreshPublisher = new DefaultWorkspaceSemanticTokensRefreshPublisher(testClient, errorReporter);

            return(new DefaultRazorSemanticTokensInfoService(
                       languageServer.Object,
                       documentMappingService,
                       projectSnapshotManagerDispatcher,
                       documentResolver,
                       documentVersionCache.Object,
                       loggingFactory));
        }