|
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