Skip to content

Commit 8b60352

Browse files
committed
Add a unit test for debounce's backpressure issue
1 parent afe2b41 commit 8b60352

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

src/test/java/rx/internal/operators/OperatorDebounceTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import static org.mockito.Mockito.times;
2424
import static org.mockito.Mockito.verify;
2525

26+
import java.util.Arrays;
2627
import java.util.concurrent.TimeUnit;
2728

2829
import org.junit.Before;
@@ -36,6 +37,7 @@
3637
import rx.exceptions.TestException;
3738
import rx.functions.Action0;
3839
import rx.functions.Func1;
40+
import rx.observers.TestSubscriber;
3941
import rx.schedulers.TestScheduler;
4042
import rx.subjects.PublishSubject;
4143

@@ -287,4 +289,20 @@ public Observable<Integer> call(Integer t1) {
287289
verify(o).onCompleted();
288290
verify(o, never()).onError(any(Throwable.class));
289291
}
292+
293+
@Test
294+
public void debounceWithTimeBackpressure() throws InterruptedException {
295+
TestScheduler scheduler = new TestScheduler();
296+
TestSubscriber<Integer> subscriber = new TestSubscriber<Integer>();
297+
Observable.merge(
298+
Observable.just(1),
299+
Observable.just(2).delay(10, TimeUnit.MILLISECONDS, scheduler)
300+
).debounce(20, TimeUnit.MILLISECONDS, scheduler).take(1).subscribe(subscriber);
301+
302+
scheduler.advanceTimeBy(30, TimeUnit.MILLISECONDS);
303+
304+
subscriber.assertReceivedOnNext(Arrays.asList(2));
305+
subscriber.assertTerminalEvent();
306+
subscriber.assertNoErrors();
307+
}
290308
}

0 commit comments

Comments
 (0)