|
19 | 19 | import static org.mockito.Mockito.inOrder;
|
20 | 20 | import static org.mockito.Mockito.mock;
|
21 | 21 | import static org.mockito.Mockito.times;
|
| 22 | +import static org.mockito.Mockito.verify; |
| 23 | +import static org.mockito.Mockito.verifyNoMoreInteractions; |
22 | 24 |
|
23 | 25 | import java.util.concurrent.TimeUnit;
|
24 | 26 |
|
@@ -172,4 +174,44 @@ public void timed() {
|
172 | 174 | ts.assertNoErrors();
|
173 | 175 | ts.assertCompleted();
|
174 | 176 | }
|
| 177 | + |
| 178 | + @Test |
| 179 | + public void throttleWithoutAdvancingTimeOfTestScheduler() { |
| 180 | + @SuppressWarnings("unchecked") |
| 181 | + Observer<Integer> observer = mock(Observer.class); |
| 182 | + TestScheduler s = new TestScheduler(); |
| 183 | + PublishSubject<Integer> o = PublishSubject.create(); |
| 184 | + o.throttleFirst(500, TimeUnit.MILLISECONDS, s).subscribe(observer); |
| 185 | + |
| 186 | + // send events without calling advanceTimeBy/To |
| 187 | + o.onNext(1); // deliver |
| 188 | + o.onNext(2); // skip |
| 189 | + o.onNext(3); // skip |
| 190 | + o.onCompleted(); |
| 191 | + |
| 192 | + verify(observer).onNext(1); |
| 193 | + verify(observer).onCompleted(); |
| 194 | + verifyNoMoreInteractions(observer); |
| 195 | + } |
| 196 | + |
| 197 | + @Test |
| 198 | + public void throttleWithTestSchedulerTimeOfZero() { |
| 199 | + @SuppressWarnings("unchecked") |
| 200 | + Observer<Integer> observer = mock(Observer.class); |
| 201 | + TestScheduler s = new TestScheduler(); |
| 202 | + PublishSubject<Integer> o = PublishSubject.create(); |
| 203 | + o.throttleFirst(500, TimeUnit.MILLISECONDS, s).subscribe(observer); |
| 204 | + |
| 205 | + s.advanceTimeBy(0, TimeUnit.MILLISECONDS); |
| 206 | + |
| 207 | + // send events while TestScheduler's time is 0 |
| 208 | + o.onNext(1); // deliver |
| 209 | + o.onNext(2); // skip |
| 210 | + o.onNext(3); // skip |
| 211 | + o.onCompleted(); |
| 212 | + |
| 213 | + verify(observer).onNext(1); |
| 214 | + verify(observer).onCompleted(); |
| 215 | + verifyNoMoreInteractions(observer); |
| 216 | + } |
175 | 217 | }
|
0 commit comments