public BatchingWorkQueueTest() { ErrorReporter = new TestErrorReporter(); WorkQueue = new BatchingWorkQueue(TimeSpan.FromMilliseconds(1), StringComparer.Ordinal, ErrorReporter); TestAccessor = WorkQueue.GetTestAccessor(); TestAccessor.NotifyBackgroundWorkCompleted = new ManualResetEventSlim(initialState: false); }
public void PublishWorkspaceChanged_DoesNotSendWorkspaceRefreshRequest_WhenNotSupported() { // Arrange var clientSettings = GetInitializedParams(semanticRefreshEnabled: false); var serverClient = new TestClient(clientSettings); var errorReporter = new TestErrorReporter(); using var defaultWorkspaceChangedPublisher = new DefaultWorkspaceSemanticTokensRefreshPublisher(serverClient, errorReporter); var testAccessor = defaultWorkspaceChangedPublisher.GetTestAccessor(); // Act defaultWorkspaceChangedPublisher.EnqueueWorkspaceSemanticTokensRefresh(); testAccessor.WaitForEmpty(); // Assert Assert.Equal(0, serverClient.Requests.Count); }
public void PublishWorkspaceChanged_SendsWorkspaceRefreshRequest_WhenSupported() { // Arrange var clientSettings = GetInitializedParams(semanticRefreshEnabled: true); var serverClient = new TestClient(clientSettings); var errorReporter = new TestErrorReporter(); using var defaultWorkspaceChangedPublisher = new DefaultWorkspaceSemanticTokensRefreshPublisher(serverClient, errorReporter); var testAccessor = defaultWorkspaceChangedPublisher.GetTestAccessor(); // Act defaultWorkspaceChangedPublisher.EnqueueWorkspaceSemanticTokensRefresh(); testAccessor.WaitForEmpty(); // Assert Assert.Collection(serverClient.Requests, r => Assert.Equal(WorkspaceNames.SemanticTokensRefresh, r.Method)); }
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); }