@Override public void run() { future.run(); } });
@Override public void run() { if (periodic) { super.runAndReset(); } else { super.run(); } }
@Override public void run() { future.run(); } });
@Override public void run() { futureTask.run(); runnables.remove(this); } };
@Override public void run() { task.run(); } });
@Override public void run() { if (mLock == null) throw new IllegalStateException("The lock is null."); synchronized (mLock) { super.run(); mLock.notify(); } }
@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); }
@Override public void run() { if (mLock == null) throw new IllegalStateException("The lock is null."); synchronized (mLock) { mWorker.getRequest().start(); isStart = true; mCallback.onStart(mWhat); super.run(); mLock.notify(); } }
@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 void combinedFutureShouldGetResultsAfterAllComplete() throws Exception { FutureTask<String> task1 = new FutureTask<>( NOOP, "1" ); FutureTask<String> task2 = new FutureTask<>( NOOP, "2" ); FutureTask<String> task3 = new FutureTask<>( NOOP, "3" ); Future<List<String>> combined = Futures.combine( task1, task2, task3 ); assertThrows( TimeoutException.class, () -> combined.get( 10, TimeUnit.MILLISECONDS ) ); task3.run(); task2.run(); assertThrows( TimeoutException.class, () -> combined.get( 10, TimeUnit.MILLISECONDS ) ); task1.run(); List<String> result = combined.get(); assertThat( result, contains( "1", "2", "3" ) ); } }
@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 withTimeoutNoTimeout() { FutureTask<Integer> task = new FutureTask<Integer>(new Runnable() { @Override public void run() { } }, 1); task.run(); TestSubscriber<Integer> ts = TestSubscriber.create(); Flowable.fromFuture(task, 1, TimeUnit.SECONDS).subscribe(ts); ts.assertValue(1); ts.assertNoErrors(); ts.assertComplete(); }
@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 backpressure() { TestSubscriber<Integer> ts = new TestSubscriber<Integer>(0); FutureTask<Integer> f = new FutureTask<Integer>(new Runnable() { @Override public void run() { } }, 1); f.run(); Flowable.fromFuture(f).subscribe(ts); ts.assertNoValues(); ts.request(1); ts.assertValue(1); ts.assertNoErrors(); ts.assertComplete(); }
@Test public void withTimeoutNoTimeoutScheduler() { FutureTask<Integer> task = new FutureTask<Integer>(new Runnable() { @Override public void run() { } }, 1); TestSubscriber<Integer> ts = TestSubscriber.create(); Flowable.fromFuture(task, Schedulers.computation()).subscribe(ts); task.run(); ts.awaitTerminalEvent(5, TimeUnit.SECONDS); ts.assertValue(1); ts.assertNoErrors(); ts.assertComplete(); } }