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