@Override public Publisher<Long> createPublisher(final long elements) { FutureTask<Long> ft = new FutureTask<Long>(new Callable<Long>() { @Override public Long call() throws Exception { return 1L; } }); ft.run(); return Flowable.fromFuture(ft); }
@Test(expected = NullPointerException.class) public void fromFutureTimedUnitNull() { Single.fromFuture(new FutureTask<Object>(new Callable<Object>() { @Override public Object call() throws Exception { return null; } }), 1, null); }
@Test(expected = NullPointerException.class) public void fromFutureSchedulerNull() { Single.fromFuture(new FutureTask<Object>(new Callable<Object>() { @Override public Object call() throws Exception { return null; } }), null); }
@Test(expected = NullPointerException.class) public void fromFutureSchedulerNull() { FutureTask<Object> f = new FutureTask<Object>(Functions.EMPTY_RUNNABLE, null); Observable.fromFuture(f, null); }
@Test(expected = NullPointerException.class) public void fromFutureTimedSchedulerNull() { Single.fromFuture(new FutureTask<Object>(new Callable<Object>() { @Override public Object call() throws Exception { return null; } }), 1, TimeUnit.SECONDS, null); }
@Test(expected = NullPointerException.class) public void fromFutureReturnsNull() { FutureTask<Object> f = new FutureTask<Object>(Functions.EMPTY_RUNNABLE, null); f.run(); Single.fromFuture(f).blockingGet(); }
@Test(expected = NullPointerException.class) public void fromFutureTimedReturnsNull() { FutureTask<Object> f = new FutureTask<Object>(Functions.EMPTY_RUNNABLE, null); f.run(); Single.fromFuture(f, 1, TimeUnit.SECONDS).blockingGet(); }
@Test(expected = NullPointerException.class) public void fromFutureTimedReturnsNull() { FutureTask<Object> f = new FutureTask<Object>(Functions.EMPTY_RUNNABLE, null); f.run(); Flowable.fromFuture(f, 1, TimeUnit.SECONDS).blockingLast(); }
@Test(expected = NullPointerException.class) public void fromFutureTimedReturnsNull() { FutureTask<Object> f = new FutureTask<Object>(Functions.EMPTY_RUNNABLE, null); f.run(); Observable.fromFuture(f, 1, TimeUnit.SECONDS).blockingLast(); }
@Test public void interrupt() { FutureTask<Integer> ft = new FutureTask<Integer>(Functions.justCallable(1)); Thread.currentThread().interrupt(); Maybe.fromFuture(ft, 1, TimeUnit.MILLISECONDS).test() .assertFailure(InterruptedException.class); }
@Test public void fromFutureReturnsNull() { FutureTask<Object> f = new FutureTask<Object>(Functions.EMPTY_RUNNABLE, null); f.run(); TestObserver<Object> to = new TestObserver<Object>(); Observable.fromFuture(f).subscribe(to); to.assertNoValues(); to.assertNotComplete(); to.assertError(NullPointerException.class); }
@Test public void timedWait() { FutureTask<Integer> ft = new FutureTask<Integer>(Functions.justCallable(1)); ft.run(); Maybe.fromFuture(ft, 1, TimeUnit.MILLISECONDS).test() .awaitDone(5, TimeUnit.SECONDS) .assertResult(1); }
@Test public void fromFutureReturnsNull() { FutureTask<Object> f = new FutureTask<Object>(Functions.EMPTY_RUNNABLE, null); f.run(); TestSubscriber<Object> ts = new TestSubscriber<Object>(); Flowable.fromFuture(f).subscribe(ts); ts.assertNoValues(); ts.assertNotComplete(); ts.assertError(NullPointerException.class); }
@Test public void cancelImmediately() { FutureTask<Integer> ft = new FutureTask<Integer>(Functions.justCallable(1)); Maybe.fromFuture(ft).test(true) .assertEmpty(); }
@Test public void withFutureDisposed() { ScheduledRunnable run = new ScheduledRunnable(Functions.EMPTY_RUNNABLE, null); run.setFuture(new FutureTask<Void>(Functions.EMPTY_RUNNABLE, null)); run.dispose(); run.call(); }
@Test public void withFutureDisposed2() { ScheduledRunnable run = new ScheduledRunnable(Functions.EMPTY_RUNNABLE, null); run.dispose(); run.setFuture(new FutureTask<Void>(Functions.EMPTY_RUNNABLE, null)); run.call(); }
@Test public void normal() { FutureTask<Object> ft = new FutureTask<Object>(Functions.EMPTY_RUNNABLE, null); Disposable d = Disposables.fromFuture(ft); assertFalse(d.isDisposed()); d.dispose(); assertTrue(d.isDisposed()); d.dispose(); assertTrue(d.isDisposed()); assertTrue(ft.isCancelled()); }
@Test public void interruptible() { FutureTask<Object> ft = new FutureTask<Object>(Functions.EMPTY_RUNNABLE, null); Disposable d = Disposables.fromFuture(ft, true); assertFalse(d.isDisposed()); d.dispose(); assertTrue(d.isDisposed()); d.dispose(); assertTrue(d.isDisposed()); assertTrue(ft.isCancelled()); }
@Test public void normalDone() { FutureTask<Object> ft = new FutureTask<Object>(Functions.EMPTY_RUNNABLE, null); FutureDisposable d = new FutureDisposable(ft, false); assertFalse(d.isDisposed()); assertFalse(d.isDisposed()); ft.run(); assertTrue(d.isDisposed()); } }
@Test public void timeout() { FutureTask<Integer> ft = new FutureTask<Integer>(Functions.justCallable(1)); Maybe.fromFuture(ft, 1, TimeUnit.MILLISECONDS).test() .awaitDone(5, TimeUnit.SECONDS) .assertFailure(TimeoutException.class); }