private Disposable getDebouncedSaver() { if (debouncedSaveSignal == null) return Disposables.empty(); return debouncedSaveSignal .debounce(SAVE_DEBOUNCE_MILLIS, TimeUnit.MILLISECONDS) .observeOn(AndroidSchedulers.mainThread()) .subscribe(ignored -> saveImmediate(), this::onError); }
@Test public void debounceSelectorObservableThrows() { PublishSubject<Integer> source = PublishSubject.create(); Function<Integer, Observable<Integer>> debounceSel = new Function<Integer, Observable<Integer>>() { @Override public Observable<Integer> apply(Integer t1) { return Observable.error(new TestException()); } }; Observer<Object> o = TestHelper.mockObserver(); source.debounce(debounceSel).subscribe(o); source.onNext(1); verify(o, never()).onNext(any()); verify(o, never()).onComplete(); verify(o).onError(any(TestException.class)); }
@Test public void debounceSelectorFuncThrows() { PublishSubject<Integer> source = PublishSubject.create(); Function<Integer, Observable<Integer>> debounceSel = new Function<Integer, Observable<Integer>>() { @Override public Observable<Integer> apply(Integer t1) { throw new TestException(); } }; Observer<Object> o = TestHelper.mockObserver(); source.debounce(debounceSel).subscribe(o); source.onNext(1); verify(o, never()).onNext(any()); verify(o, never()).onComplete(); verify(o).onError(any(TestException.class)); }
@Test public void debounceTimedLastIsNotLost() { PublishSubject<Integer> source = PublishSubject.create(); Observer<Object> o = TestHelper.mockObserver(); source.debounce(100, TimeUnit.MILLISECONDS, scheduler).subscribe(o); source.onNext(1); source.onComplete(); scheduler.advanceTimeBy(1, TimeUnit.SECONDS); verify(o).onNext(1); verify(o).onComplete(); verify(o, never()).onError(any(Throwable.class)); }
.debounce(SUGGESTIONS_DEBOUNCE, TimeUnit.MILLISECONDS) .startWith(searchString != null ? searchString
@Test public void debounceSelectorLastIsNotLost() { PublishSubject<Integer> source = PublishSubject.create(); final PublishSubject<Integer> debouncer = PublishSubject.create(); Function<Integer, Observable<Integer>> debounceSel = new Function<Integer, Observable<Integer>>() { @Override public Observable<Integer> apply(Integer t1) { return debouncer; } }; Observer<Object> o = TestHelper.mockObserver(); source.debounce(debounceSel).subscribe(o); source.onNext(1); source.onComplete(); debouncer.onComplete(); verify(o).onNext(1); verify(o).onComplete(); verify(o, never()).onError(any(Throwable.class)); }
@Test public void dispose() { TestHelper.checkDisposed(PublishSubject.create().debounce(1, TimeUnit.SECONDS, new TestScheduler())); TestHelper.checkDisposed(PublishSubject.create().debounce(Functions.justFunction(Observable.never()))); Disposable d = new ObservableDebounceTimed.DebounceEmitter<Integer>(1, 1, null); assertFalse(d.isDisposed()); d.dispose(); assertTrue(d.isDisposed()); }
@Test public void debounceSelectorNormal1() { PublishSubject<Integer> source = PublishSubject.create(); final PublishSubject<Integer> debouncer = PublishSubject.create(); Function<Integer, Observable<Integer>> debounceSel = new Function<Integer, Observable<Integer>>() { @Override public Observable<Integer> apply(Integer t1) { return debouncer; } }; Observer<Object> o = TestHelper.mockObserver(); InOrder inOrder = inOrder(o); source.debounce(debounceSel).subscribe(o); source.onNext(1); debouncer.onNext(1); source.onNext(2); source.onNext(3); source.onNext(4); debouncer.onNext(2); source.onNext(5); source.onComplete(); inOrder.verify(o).onNext(1); inOrder.verify(o).onNext(4); inOrder.verify(o).onNext(5); inOrder.verify(o).onComplete(); verify(o, never()).onError(any(Throwable.class)); }
mPublishSubject.debounce(200, TimeUnit.MILLISECONDS).filter(new Predicate<String>() {