@Test public void cancel() { SubmissionPublisher<Integer> sp = new SubmissionPublisher<>(Runnable::run, 128); TestSubscriber<Integer> ts = new TestSubscriber<>(Long.MAX_VALUE); Single.create(sp) .defaultIfEmpty(2) .subscribe(ts); assertTrue(sp.hasSubscribers()); ts.assertEmpty(); ts.cancel(); assertFalse(sp.hasSubscribers()); }
@Override public void subscribe(Flow.Subscriber<? super T> subscriber) { source.subscribe(new DefaultIfEmptySubscriber<>(subscriber, defaultItem)); }
SingleDefaultIfEmpty extends CompletionSingle<T> { @Override public void subscribe(Flow.Subscriber<? super T> subscriber) { source.subscribe(new DefaultIfEmptySubscriber<>(subscriber, defaultItem)); } }
SingleDefaultIfEmpty extends CompletionSingle<T> { @Override public void subscribe(Flow.Subscriber<? super T> subscriber) { source.subscribe(new DefaultIfEmptySubscriber<>(subscriber, defaultItem)); } SingleDefaultIfEmpty(Single<T> source, T defaultItem); }
SingleDefaultIfEmpty extends CompletionSingle<T> { @Override public void subscribe(Flow.Subscriber<? super T> subscriber) { source.subscribe(new DefaultIfEmptySubscriber<>(subscriber, defaultItem)); } SingleDefaultIfEmpty(Single<T> source, T defaultItem); @Override void subscribe(Flow.Subscriber<? super T> subscriber); }
SingleDefaultIfEmpty extends CompletionSingle<T> { @Override public void subscribe(Flow.Subscriber<? super T> subscriber) { source.subscribe(new DefaultIfEmptySubscriber<>(subscriber, defaultItem)); } SingleDefaultIfEmpty(Single<T> source, T defaultItem); @Override void subscribe(Flow.Subscriber<? super T> subscriber);  }