|
1 | 1 | using System;
|
2 | 2 | using System.Collections.Generic;
|
3 | 3 | using System.Linq;
|
| 4 | +using System.Reactive; |
| 5 | +using System.Reactive.Disposables; |
4 | 6 | using System.Reactive.Linq;
|
5 | 7 | using System.Reactive.Threading.Tasks;
|
6 | 8 | using System.Threading.Tasks;
|
|
14 | 16 | using OmniSharp.Extensions.LanguageServer.Protocol.Models;
|
15 | 17 | using OmniSharp.Extensions.LanguageServer.Protocol.Serialization;
|
16 | 18 | using OmniSharp.Extensions.LanguageServer.Server;
|
| 19 | +using TestingUtils; |
17 | 20 | using Xunit;
|
18 | 21 | using Xunit.Abstractions;
|
19 | 22 |
|
@@ -66,13 +69,16 @@ public async Task Should_Send_Progress_From_Server_To_Client()
|
66 | 69 | }
|
67 | 70 | );
|
68 | 71 |
|
69 |
| - await Task.Delay(1000); |
70 |
| - |
71 |
| - workDoneObservable.Dispose(); |
| 72 | + await Observable.Create<Unit>( |
| 73 | + observer => new CompositeDisposable() { |
| 74 | + observable.Select(z => z.Value).Take(5).Subscribe(_ => observer.OnNext(Unit.Default), observer.OnCompleted), |
| 75 | + workDoneObservable |
| 76 | + } |
| 77 | + ).ToTask(CancellationToken); |
72 | 78 |
|
73 | 79 | var data = await observable.Select(z => z.Value).ToArray().ToTask(CancellationToken);
|
74 | 80 |
|
75 |
| - data.Should().ContainInOrder(new [] {"1", "3", "2", "4", "5" }); |
| 81 | + data.Should().ContainInOrder(new[] { "1", "3", "2", "4", "5" }); |
76 | 82 | }
|
77 | 83 |
|
78 | 84 | [Fact]
|
@@ -111,13 +117,16 @@ public async Task Should_Send_Progress_From_Client_To_Server()
|
111 | 117 | }
|
112 | 118 | );
|
113 | 119 |
|
114 |
| - await Task.Delay(1000); |
115 |
| - |
116 |
| - workDoneObservable.Dispose(); |
| 120 | + await Observable.Create<Unit>( |
| 121 | + observer => new CompositeDisposable() { |
| 122 | + observable.Select(z => z.Value).Take(5).Subscribe(_ => observer.OnNext(Unit.Default), observer.OnCompleted), |
| 123 | + workDoneObservable |
| 124 | + } |
| 125 | + ).ToTask(CancellationToken); |
117 | 126 |
|
118 | 127 | var data = await observable.Select(z => z.Value).ToArray().ToTask(CancellationToken);
|
119 | 128 |
|
120 |
| - data.Should().ContainInOrder(new [] {"1", "3", "2", "4", "5" }); |
| 129 | + data.Should().ContainInOrder(new[] { "1", "3", "2", "4", "5" }); |
121 | 130 | }
|
122 | 131 |
|
123 | 132 | [Fact]
|
|
0 commit comments