File tree Expand file tree Collapse file tree 2 files changed +24
-0
lines changed
main/java/rx/internal/operators
test/java/rx/internal/operators Expand file tree Collapse file tree 2 files changed +24
-0
lines changed Original file line number Diff line number Diff line change @@ -62,6 +62,12 @@ public Subscriber<? super T> call(final Subscriber<? super T> child) {
6262 return new Subscriber <T >(child ) {
6363 final DebounceState <T > state = new DebounceState <T >();
6464 final Subscriber <?> self = this ;
65+
66+ @ Override
67+ public void onStart () {
68+ request (Long .MAX_VALUE );
69+ }
70+
6571 @ Override
6672 public void onNext (final T t ) {
6773
Original file line number Diff line number Diff line change 2323import static org .mockito .Mockito .times ;
2424import static org .mockito .Mockito .verify ;
2525
26+ import java .util .Arrays ;
2627import java .util .concurrent .TimeUnit ;
2728
2829import org .junit .Before ;
3637import rx .exceptions .TestException ;
3738import rx .functions .Action0 ;
3839import rx .functions .Func1 ;
40+ import rx .observers .TestSubscriber ;
3941import rx .schedulers .TestScheduler ;
4042import 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}
You can’t perform that action at this time.
0 commit comments