diff --git a/src/test/java/io/reactivex/flowable/FlowableSubscriberTest.java b/src/test/java/io/reactivex/flowable/FlowableSubscriberTest.java index be022d0b3f..dd89d42e4d 100644 --- a/src/test/java/io/reactivex/flowable/FlowableSubscriberTest.java +++ b/src/test/java/io/reactivex/flowable/FlowableSubscriberTest.java @@ -463,39 +463,6 @@ public void onNext(Integer t) { assertEquals(1, c.get()); } - @Ignore("Non-positive requests are relayed to the plugin and is a no-op otherwise") - @Test - public void negativeRequestThrowsIllegalArgumentException() throws InterruptedException { - final CountDownLatch latch = new CountDownLatch(1); - final AtomicReference exception = new AtomicReference(); - Flowable.just(1, 2, 3, 4).subscribe(new DefaultSubscriber() { - - @Override - public void onStart() { - request(1); - } - - @Override - public void onComplete() { - - } - - @Override - public void onError(Throwable e) { - exception.set(e); - latch.countDown(); - } - - @Override - public void onNext(Integer t) { - request(-1); - request(1); - }}); - - Assert.assertTrue(latch.await(10, TimeUnit.SECONDS)); - Assert.assertTrue(exception.get() instanceof IllegalArgumentException); - } - @Test public void onStartRequestsAreAdditive() { final List list = new ArrayList(); diff --git a/src/test/java/io/reactivex/internal/operators/observable/AbstractObservableWithUpstreamTest.java b/src/test/java/io/reactivex/internal/operators/observable/AbstractObservableWithUpstreamTest.java index 2b880cd343..0bdf28dd77 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/AbstractObservableWithUpstreamTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/AbstractObservableWithUpstreamTest.java @@ -14,13 +14,15 @@ package io.reactivex.internal.operators.observable; import static org.junit.Assert.*; + +import io.reactivex.RxJavaTest; import org.junit.Test; import io.reactivex.Observable; import io.reactivex.internal.functions.Functions; import io.reactivex.internal.fuseable.HasUpstreamObservableSource; -public class AbstractObservableWithUpstreamTest { +public class AbstractObservableWithUpstreamTest extends RxJavaTest { @SuppressWarnings("unchecked") @Test diff --git a/src/test/java/io/reactivex/internal/operators/observable/BlockingObservableLatestTest.java b/src/test/java/io/reactivex/internal/operators/observable/BlockingObservableLatestTest.java index 952e0e1ad5..114d658f3f 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/BlockingObservableLatestTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/BlockingObservableLatestTest.java @@ -18,6 +18,7 @@ import java.util.*; import java.util.concurrent.TimeUnit; +import io.reactivex.RxJavaTest; import org.junit.*; import io.reactivex.Observable; @@ -28,8 +29,8 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.TestHelper; -public class BlockingObservableLatestTest { - @Test(timeout = 1000) +public class BlockingObservableLatestTest extends RxJavaTest { + @Test public void simple() { TestScheduler scheduler = new TestScheduler(); @@ -53,7 +54,7 @@ public void simple() { Assert.assertFalse(it.hasNext()); } - @Test(timeout = 1000) + @Test public void sameSourceMultipleIterators() { TestScheduler scheduler = new TestScheduler(); @@ -79,7 +80,7 @@ public void sameSourceMultipleIterators() { } } - @Test(timeout = 1000, expected = NoSuchElementException.class) + @Test(expected = NoSuchElementException.class) public void empty() { Observable source = Observable. empty(); @@ -92,7 +93,7 @@ public void empty() { it.next(); } - @Test(timeout = 1000, expected = NoSuchElementException.class) + @Test(expected = NoSuchElementException.class) public void simpleJustNext() { TestScheduler scheduler = new TestScheduler(); @@ -111,7 +112,7 @@ public void simpleJustNext() { } } - @Test(/* timeout = 1000, */expected = RuntimeException.class) + @Test(expected = RuntimeException.class) public void hasNextThrows() { TestScheduler scheduler = new TestScheduler(); @@ -126,7 +127,7 @@ public void hasNextThrows() { it.hasNext(); } - @Test(timeout = 1000, expected = RuntimeException.class) + @Test(expected = RuntimeException.class) public void nextThrows() { TestScheduler scheduler = new TestScheduler(); @@ -140,7 +141,7 @@ public void nextThrows() { it.next(); } - @Test(timeout = 1000) + @Test public void fasterSource() { PublishSubject source = PublishSubject.create(); Observable blocker = source; diff --git a/src/test/java/io/reactivex/internal/operators/observable/BlockingObservableMostRecentTest.java b/src/test/java/io/reactivex/internal/operators/observable/BlockingObservableMostRecentTest.java index ad47e31837..2e32497ae2 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/BlockingObservableMostRecentTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/BlockingObservableMostRecentTest.java @@ -18,6 +18,7 @@ import java.util.*; import java.util.concurrent.TimeUnit; +import io.reactivex.RxJavaTest; import org.junit.*; import io.reactivex.Observable; @@ -25,7 +26,7 @@ import io.reactivex.schedulers.TestScheduler; import io.reactivex.subjects.*; -public class BlockingObservableMostRecentTest { +public class BlockingObservableMostRecentTest extends RxJavaTest { @Test public void mostRecentNull() { assertNull(Observable.never().blockingMostRecent(null).iterator().next()); @@ -76,7 +77,7 @@ public void mostRecentWithException() { it.next(); } - @Test(timeout = 1000) + @Test public void singleSourceManyIterators() { TestScheduler scheduler = new TestScheduler(); Observable source = Observable.interval(1, TimeUnit.SECONDS, scheduler).take(10); diff --git a/src/test/java/io/reactivex/internal/operators/observable/BlockingObservableNextTest.java b/src/test/java/io/reactivex/internal/operators/observable/BlockingObservableNextTest.java index 5a5db98293..b59f60857f 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/BlockingObservableNextTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/BlockingObservableNextTest.java @@ -33,7 +33,7 @@ import io.reactivex.subjects.*; import io.reactivex.testsupport.TestHelper; -public class BlockingObservableNextTest { +public class BlockingObservableNextTest extends RxJavaTest { private void fireOnNextInNewThread(final Subject o, final String value) { new Thread() { @@ -312,7 +312,7 @@ public void run() { } } - @Test /* (timeout = 8000) */ + @Test public void singleSourceManyIterators() throws InterruptedException { Observable o = Observable.interval(250, TimeUnit.MILLISECONDS); PublishSubject terminal = PublishSubject.create(); diff --git a/src/test/java/io/reactivex/internal/operators/observable/BlockingObservableToFutureTest.java b/src/test/java/io/reactivex/internal/operators/observable/BlockingObservableToFutureTest.java index 345b293434..916436a62d 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/BlockingObservableToFutureTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/BlockingObservableToFutureTest.java @@ -20,6 +20,7 @@ import java.util.*; import java.util.concurrent.*; +import io.reactivex.RxJavaTest; import org.junit.*; import io.reactivex.Observable; @@ -28,13 +29,7 @@ import io.reactivex.disposables.Disposables; import io.reactivex.exceptions.TestException; -public class BlockingObservableToFutureTest { - @Ignore("No separate file") - @Test - public void constructorShouldBePrivate() { -// TestHelper.checkUtilityClass(FlowableToFuture.class); - } - +public class BlockingObservableToFutureTest extends RxJavaTest { @Test public void toFuture() throws InterruptedException, ExecutionException { Observable obs = Observable.just("one"); @@ -51,7 +46,7 @@ public void toFutureList() throws InterruptedException, ExecutionException { assertEquals("three", f.get().get(2)); } - @Test(/* timeout = 5000, */expected = IndexOutOfBoundsException.class) + @Test(expected = IndexOutOfBoundsException.class) public void exceptionWithMoreThanOneElement() throws Throwable { Observable obs = Observable.just("one", "two"); Future f = obs.toFuture(); @@ -115,12 +110,4 @@ public void getWithEmptyFlowable() throws Throwable { throw e.getCause(); } } - - @Ignore("null value is not allowed") - @Test - public void getWithASingleNullItem() throws Exception { - Observable obs = Observable.just((String)null); - Future f = obs.toFuture(); - assertNull(f.get()); - } } diff --git a/src/test/java/io/reactivex/internal/operators/observable/BlockingObservableToIteratorTest.java b/src/test/java/io/reactivex/internal/operators/observable/BlockingObservableToIteratorTest.java index e06bedb7c7..95196c3b67 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/BlockingObservableToIteratorTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/BlockingObservableToIteratorTest.java @@ -17,6 +17,7 @@ import java.util.*; +import io.reactivex.RxJavaTest; import org.junit.*; import io.reactivex.Observable; @@ -26,7 +27,7 @@ import io.reactivex.exceptions.TestException; import io.reactivex.internal.operators.observable.BlockingObservableIterable.BlockingObservableIterator; -public class BlockingObservableToIteratorTest { +public class BlockingObservableToIteratorTest extends RxJavaTest { @Test public void toIterator() { @@ -68,21 +69,6 @@ public void subscribe(Observer observer) { it.next(); } - @Ignore("subscribe() should not throw") - @Test(expected = TestException.class) - public void exceptionThrownFromOnSubscribe() { - Iterable strings = Observable.unsafeCreate(new ObservableSource() { - @Override - public void subscribe(Observer observer) { - throw new TestException("intentional"); - } - }).blockingIterable(); - for (String string : strings) { - // never reaches here - System.out.println(string); - } - } - @Test public void dispose() { BlockingObservableIterator it = new BlockingObservableIterator(128); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableAllTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableAllTest.java index b33eabd6e1..18249328dc 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableAllTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableAllTest.java @@ -29,7 +29,7 @@ import io.reactivex.plugins.RxJavaPlugins; import io.reactivex.testsupport.*; -public class ObservableAllTest { +public class ObservableAllTest extends RxJavaTest { @Test public void allObservable() { @@ -124,7 +124,7 @@ public boolean test(Integer i) { assertFalse(allOdd.blockingFirst()); } - @Test(timeout = 5000) + @Test public void issue1935NoUnsubscribeDownstreamObservable() { Observable source = Observable.just(1) .all(new Predicate() { @@ -255,7 +255,7 @@ public boolean test(Integer i) { assertFalse(allOdd.blockingGet()); } - @Test(timeout = 5000) + @Test public void issue1935NoUnsubscribeDownstream() { Observable source = Observable.just(1) .all(new Predicate() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableAmbTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableAmbTest.java index 4a2c304757..02aeb304e4 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableAmbTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableAmbTest.java @@ -37,7 +37,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.*; -public class ObservableAmbTest { +public class ObservableAmbTest extends RxJavaTest { private TestScheduler scheduler; private Scheduler.Worker innerScheduler; diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableAnyTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableAnyTest.java index 44fc817ea5..56cfc5bc0f 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableAnyTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableAnyTest.java @@ -30,7 +30,7 @@ import io.reactivex.plugins.RxJavaPlugins; import io.reactivex.testsupport.*; -public class ObservableAnyTest { +public class ObservableAnyTest extends RxJavaTest { @Test public void anyWithTwoItemsObservable() { @@ -231,7 +231,7 @@ public boolean test(Integer i) { assertTrue(anyEven.blockingFirst()); } - @Test(timeout = 5000) + @Test public void issue1935NoUnsubscribeDownstreamObservable() { Observable source = Observable.just(1).isEmpty().toObservable() .flatMap(new Function>() { @@ -453,7 +453,7 @@ public boolean test(Integer i) { assertTrue(anyEven.blockingGet()); } - @Test(timeout = 5000) + @Test public void issue1935NoUnsubscribeDownstream() { Observable source = Observable.just(1).isEmpty() .flatMapObservable(new Function>() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableAutoConnectTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableAutoConnectTest.java index b88554e96d..261450a8c1 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableAutoConnectTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableAutoConnectTest.java @@ -14,11 +14,13 @@ package io.reactivex.internal.operators.observable; import static org.junit.Assert.*; + +import io.reactivex.RxJavaTest; import org.junit.Test; import io.reactivex.subjects.PublishSubject; -public class ObservableAutoConnectTest { +public class ObservableAutoConnectTest extends RxJavaTest { @Test public void autoConnectImmediately() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableBlockingTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableBlockingTest.java index 72e43d1ed8..16b61a43da 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableBlockingTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableBlockingTest.java @@ -18,6 +18,7 @@ import java.util.*; import java.util.concurrent.TimeUnit; +import io.reactivex.RxJavaTest; import org.junit.Test; import io.reactivex.Observable; @@ -31,7 +32,7 @@ import io.reactivex.schedulers.Schedulers; import io.reactivex.testsupport.TestHelper; -public class ObservableBlockingTest { +public class ObservableBlockingTest extends RxJavaTest { @Test public void blockingFirst() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableBufferTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableBufferTest.java index 248655e814..287350096e 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableBufferTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableBufferTest.java @@ -40,7 +40,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.TestHelper; -public class ObservableBufferTest { +public class ObservableBufferTest extends RxJavaTest { private Observer> observer; private TestScheduler scheduler; @@ -453,7 +453,7 @@ public void bufferWithBOBoundaryThrows() { verify(o, never()).onNext(any()); } - @Test(timeout = 2000) + @Test public void bufferWithSizeTake1() { Observable source = Observable.just(1).repeat(); @@ -468,7 +468,7 @@ public void bufferWithSizeTake1() { verify(o, never()).onError(any(Throwable.class)); } - @Test(timeout = 2000) + @Test public void bufferWithSizeSkipTake1() { Observable source = Observable.just(1).repeat(); @@ -483,7 +483,7 @@ public void bufferWithSizeSkipTake1() { verify(o, never()).onError(any(Throwable.class)); } - @Test(timeout = 2000) + @Test public void bufferWithTimeTake1() { Observable source = Observable.interval(40, 40, TimeUnit.MILLISECONDS, scheduler); @@ -500,7 +500,7 @@ public void bufferWithTimeTake1() { verify(o, never()).onError(any(Throwable.class)); } - @Test(timeout = 2000) + @Test public void bufferWithTimeSkipTake2() { Observable source = Observable.interval(40, 40, TimeUnit.MILLISECONDS, scheduler); @@ -519,7 +519,7 @@ public void bufferWithTimeSkipTake2() { verify(o, never()).onError(any(Throwable.class)); } - @Test(timeout = 2000) + @Test public void bufferWithBoundaryTake2() { Observable boundary = Observable.interval(60, 60, TimeUnit.MILLISECONDS, scheduler); Observable source = Observable.interval(40, 40, TimeUnit.MILLISECONDS, scheduler); @@ -540,7 +540,7 @@ public void bufferWithBoundaryTake2() { } - @Test(timeout = 2000) + @Test public void bufferWithStartEndBoundaryTake2() { Observable start = Observable.interval(61, 61, TimeUnit.MILLISECONDS, scheduler); Function> end = new Function>() { @@ -729,7 +729,7 @@ public Observable apply(Integer t1) { verify(o).onError(any(TestException.class)); } - @Test(timeout = 3000) + @Test public void bufferWithTimeDoesntUnsubscribeDownstream() throws InterruptedException { final Observer o = TestHelper.mockObserver(); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableBufferUntilSubscriberTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableBufferUntilSubscriberTest.java index 062ab659aa..67b7643599 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableBufferUntilSubscriberTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableBufferUntilSubscriberTest.java @@ -17,6 +17,7 @@ import java.util.concurrent.*; import java.util.concurrent.atomic.*; +import io.reactivex.RxJavaTest; import org.junit.*; import io.reactivex.Observable; @@ -24,7 +25,7 @@ import io.reactivex.schedulers.Schedulers; import io.reactivex.subjects.PublishSubject; -public class ObservableBufferUntilSubscriberTest { +public class ObservableBufferUntilSubscriberTest extends RxJavaTest { @Test public void issue1677() throws InterruptedException { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableCacheTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableCacheTest.java index 3d9c31de9f..51de96e0a4 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableCacheTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableCacheTest.java @@ -20,6 +20,7 @@ import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicInteger; +import io.reactivex.RxJavaTest; import org.junit.*; import io.reactivex.Observable; @@ -33,7 +34,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.*; -public class ObservableCacheTest { +public class ObservableCacheTest extends RxJavaTest { @Test public void coldReplayNoBackpressure() { ObservableCache source = new ObservableCache(Observable.range(0, 1000), 16); @@ -237,36 +238,6 @@ public void valuesAndThenError() { to2.assertError(TestException.class); } - @Test - @Ignore("2.x consumers are not allowed to throw") - public void unsafeChildThrows() { - final AtomicInteger count = new AtomicInteger(); - - Observable source = Observable.range(1, 100) - .doOnNext(new Consumer() { - @Override - public void accept(Integer t) { - count.getAndIncrement(); - } - }) - .cache(); - - TestObserver to = new TestObserver() { - @Override - public void onNext(Integer t) { - throw new TestException(); - } - }; - - source.subscribe(to); - - Assert.assertEquals(100, count.get()); - - to.assertNoValues(); - to.assertNotComplete(); - to.assertError(TestException.class); - } - @Test public void observers() { PublishSubject ps = PublishSubject.create(); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableCastTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableCastTest.java index cf0e2aa624..cdd27bb844 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableCastTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableCastTest.java @@ -20,7 +20,7 @@ import io.reactivex.*; import io.reactivex.testsupport.TestHelper; -public class ObservableCastTest { +public class ObservableCastTest extends RxJavaTest { @Test public void cast() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableCollectTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableCollectTest.java index 209178579f..f81fa5b298 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableCollectTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableCollectTest.java @@ -28,7 +28,7 @@ import io.reactivex.plugins.RxJavaPlugins; import io.reactivex.testsupport.TestHelper; -public final class ObservableCollectTest { +public final class ObservableCollectTest extends RxJavaTest { @Test public void collectToListObservable() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableCombineLatestTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableCombineLatestTest.java index 05b5daa9fe..204ddd6231 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableCombineLatestTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableCombineLatestTest.java @@ -36,7 +36,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.*; -public class ObservableCombineLatestTest { +public class ObservableCombineLatestTest extends RxJavaTest { @Test public void combineLatestWithFunctionThatThrowsAnException() { @@ -454,7 +454,7 @@ public List apply(Object[] args) { } } - @Test(timeout = 5000) + @Test public void oneToNSourcesScheduled() throws InterruptedException { int n = 10; Function> func = new Function>() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatMapCompletableTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatMapCompletableTest.java index b833852d47..c7dbd3803e 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatMapCompletableTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatMapCompletableTest.java @@ -27,7 +27,7 @@ import io.reactivex.subjects.*; import io.reactivex.testsupport.TestHelper; -public class ObservableConcatMapCompletableTest { +public class ObservableConcatMapCompletableTest extends RxJavaTest { @Test public void asyncFused() throws Exception { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatMapEagerTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatMapEagerTest.java index d0bbe9579d..98e3ba9029 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatMapEagerTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatMapEagerTest.java @@ -20,6 +20,7 @@ import java.util.concurrent.*; import java.util.concurrent.atomic.*; +import io.reactivex.RxJavaTest; import org.junit.*; import io.reactivex.Observable; @@ -33,7 +34,7 @@ import io.reactivex.subjects.*; import io.reactivex.testsupport.*; -public class ObservableConcatMapEagerTest { +public class ObservableConcatMapEagerTest extends RxJavaTest { @Test public void normal() { @@ -48,33 +49,6 @@ public ObservableSource apply(Integer t) { .assertResult(1, 2, 2, 3, 3, 4, 4, 5, 5, 6); } - @Test - @Ignore("Observable doesn't do backpressure") - public void normalBackpressured() { -// TestObserver to = Observable.range(1, 5) -// .concatMapEager(new Function>() { -// @Override -// public ObservableSource apply(Integer t) { -// return Observable.range(t, 2); -// } -// }) -// .test(3); -// -// to.assertValues(1, 2, 2); -// -// to.request(1); -// -// to.assertValues(1, 2, 2, 3); -// -// to.request(1); -// -// to.assertValues(1, 2, 2, 3, 3); -// -// to.request(5); -// -// to.assertResult(1, 2, 2, 3, 3, 4, 4, 5, 5, 6); - } - @Test public void normalDelayBoundary() { Observable.range(1, 5) @@ -88,33 +62,6 @@ public ObservableSource apply(Integer t) { .assertResult(1, 2, 2, 3, 3, 4, 4, 5, 5, 6); } - @Test - @Ignore("Observable doesn't do backpressure") - public void normalDelayBoundaryBackpressured() { -// TestObserver to = Observable.range(1, 5) -// .concatMapEagerDelayError(new Function>() { -// @Override -// public ObservableSource apply(Integer t) { -// return Observable.range(t, 2); -// } -// }, false) -// .test(3); -// -// to.assertValues(1, 2, 2); -// -// to.request(1); -// -// to.assertValues(1, 2, 2, 3); -// -// to.request(1); -// -// to.assertValues(1, 2, 2, 3, 3); -// -// to.request(5); -// -// to.assertResult(1, 2, 2, 3, 3, 4, 4, 5, 5, 6); - } - @Test public void normalDelayEnd() { Observable.range(1, 5) @@ -128,33 +75,6 @@ public ObservableSource apply(Integer t) { .assertResult(1, 2, 2, 3, 3, 4, 4, 5, 5, 6); } - @Test - @Ignore("Observable doesn't do backpressure") - public void normalDelayEndBackpressured() { -// TestObserver to = Observable.range(1, 5) -// .concatMapEagerDelayError(new Function>() { -// @Override -// public ObservableSource apply(Integer t) { -// return Observable.range(t, 2); -// } -// }, true) -// .test(3); -// -// to.assertValues(1, 2, 2); -// -// to.request(1); -// -// to.assertValues(1, 2, 2, 3); -// -// to.request(1); -// -// to.assertValues(1, 2, 2, 3, 3); -// -// to.request(5); -// -// to.assertResult(1, 2, 2, 3, 3, 4, 4, 5, 5, 6); - } - @Test public void mainErrorsDelayBoundary() { PublishSubject main = PublishSubject.create(); @@ -519,27 +439,6 @@ public void invalidCapacityHint() { Observable.just(1).concatMapEager(toJust, Observable.bufferSize(), 0); } - @Test -// @SuppressWarnings("unchecked") - @Ignore("Observable doesn't do backpressure") - public void backpressure() { -// Observable.concatArrayEager(Observable.just(1), Observable.just(1)).subscribe(ts); -// -// ts.assertNoErrors(); -// ts.assertNoValues(); -// ts.assertNotComplete(); -// -// ts.request(1); -// ts.assertValue(1); -// ts.assertNoErrors(); -// ts.assertNotComplete(); -// -// ts.request(1); -// ts.assertValues(1, 1); -// ts.assertNoErrors(); -// ts.assertComplete(); - } - @Test public void asynchronousRun() { Observable.range(1, 2).concatMapEager(new Function>() { @@ -583,89 +482,21 @@ public void accept(Integer t) { to.assertValues(1, 2); } - @Test - @Ignore("Observable doesn't do backpressure so it can't bound its input count") - public void prefetchIsBounded() { - final AtomicInteger count = new AtomicInteger(); - - TestObserver to = TestObserver.create(); - - Observable.just(1).concatMapEager(new Function>() { - @Override - public Observable apply(Integer t) { - return Observable.range(1, Observable.bufferSize() * 2) - .doOnNext(new Consumer() { - @Override - public void accept(Integer t) { - count.getAndIncrement(); - } - }).hide(); - } - }).subscribe(to); - - to.assertNoErrors(); - to.assertNoValues(); - to.assertNotComplete(); - Assert.assertEquals(Observable.bufferSize(), count.get()); - } - - @Test - @Ignore("Null values are not allowed in RS") - public void innerNull() { - Observable.just(1).concatMapEager(new Function>() { - @Override - public Observable apply(Integer t) { - return Observable.just(null); - } - }).subscribe(to); - - to.assertNoErrors(); - to.assertComplete(); - to.assertValue(null); - } - - @Test - @Ignore("Observable doesn't do backpressure") - public void maxConcurrent5() { -// final List requests = new ArrayList(); -// Observable.range(1, 100).doOnRequest(new LongConsumer() { -// @Override -// public void accept(long reqCount) { -// requests.add(reqCount); -// } -// }).concatMapEager(toJust, 5, Observable.bufferSize()).subscribe(ts); -// -// ts.assertNoErrors(); -// ts.assertValueCount(100); -// ts.assertComplete(); -// -// Assert.assertEquals(5, (long) requests.get(0)); -// Assert.assertEquals(1, (long) requests.get(1)); -// Assert.assertEquals(1, (long) requests.get(2)); -// Assert.assertEquals(1, (long) requests.get(3)); -// Assert.assertEquals(1, (long) requests.get(4)); -// Assert.assertEquals(1, (long) requests.get(5)); - } - @SuppressWarnings("unchecked") @Test - @Ignore("Currently there are no 2-9 argument variants, use concatArrayEager()") - public void many() throws Exception { + public void concatArrayEager() throws Exception { for (int i = 2; i < 10; i++) { - Class[] clazz = new Class[i]; - Arrays.fill(clazz, Observable.class); - Observable[] obs = new Observable[i]; Arrays.fill(obs, Observable.just(1)); Integer[] expected = new Integer[i]; Arrays.fill(expected, 1); - Method m = Observable.class.getMethod("concatEager", clazz); + Method m = Observable.class.getMethod("concatArrayEager", ObservableSource[].class); TestObserver to = TestObserver.create(); - ((Observable)m.invoke(null, (Object[])obs)).subscribe(to); + ((Observable)m.invoke(null, new Object[]{obs})).subscribe(to); to.assertValues(expected); to.assertNoErrors(); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatMapSchedulerTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatMapSchedulerTest.java index b19eab49e2..b6d1b8b0fa 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatMapSchedulerTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatMapSchedulerTest.java @@ -304,7 +304,7 @@ public Observable apply(Integer t) throws Throwable { assertTrue(to.values().toString(), to.values().get(0).startsWith("RxSingleScheduler-")); } - @Test(timeout = 30000) + @Test public void issue2890NoStackoverflow() throws InterruptedException { final ExecutorService executor = Executors.newFixedThreadPool(2); final Scheduler sch = Schedulers.from(executor); @@ -355,7 +355,7 @@ public void onError(Throwable e) { assertEquals(n, counter.get()); } - @Test//(timeout = 100000) + @Test public void concatMapRangeAsyncLoopIssue2876() { final long durationSeconds = 2; final long startTime = System.currentTimeMillis(); @@ -387,23 +387,19 @@ public Observable apply(Integer t) { @SuppressWarnings("unchecked") @Test - @Ignore("concat(a, b, ...) replaced by concatArray(T...)") - public void concatMany() throws Exception { + public void concatArray() throws Exception { for (int i = 2; i < 10; i++) { - Class[] clazz = new Class[i]; - Arrays.fill(clazz, Observable.class); - Observable[] obs = new Observable[i]; Arrays.fill(obs, Observable.just(1)); Integer[] expected = new Integer[i]; Arrays.fill(expected, 1); - Method m = Observable.class.getMethod("concat", clazz); + Method m = Observable.class.getMethod("concatArray", ObservableSource[].class); TestObserver to = TestObserver.create(); - ((Observable)m.invoke(null, (Object[])obs)).subscribe(to); + ((Observable)m.invoke(null, new Object[]{obs})).subscribe(to); to.assertValues(expected); to.assertNoErrors(); @@ -461,23 +457,19 @@ public void concatMapDelayErrorJustRange() { @SuppressWarnings("unchecked") @Test - @Ignore("startWith(a, b, ...) replaced by startWithArray(T...)") - public void startWith() throws Exception { + public void startWithArray() throws Exception { for (int i = 2; i < 10; i++) { - Class[] clazz = new Class[i]; - Arrays.fill(clazz, Object.class); - Object[] obs = new Object[i]; Arrays.fill(obs, 1); Integer[] expected = new Integer[i]; Arrays.fill(expected, 1); - Method m = Observable.class.getMethod("startWith", clazz); + Method m = Observable.class.getMethod("startWithArray", Object[].class); TestObserver to = TestObserver.create(); - ((Observable)m.invoke(Observable.empty(), obs)).subscribe(to); + ((Observable)m.invoke(Observable.empty(), new Object[]{obs})).subscribe(to); to.assertValues(expected); to.assertNoErrors(); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatMapTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatMapTest.java index c9dbd0cda6..fd6d7738da 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatMapTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatMapTest.java @@ -31,7 +31,7 @@ import io.reactivex.subjects.*; import io.reactivex.testsupport.TestHelper; -public class ObservableConcatMapTest { +public class ObservableConcatMapTest extends RxJavaTest { @Test public void asyncFused() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatTest.java index 3bdce686fe..982767f15e 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatTest.java @@ -35,7 +35,7 @@ import io.reactivex.subjects.*; import io.reactivex.testsupport.*; -public class ObservableConcatTest { +public class ObservableConcatTest extends RxJavaTest { @Test public void concat() { @@ -681,7 +681,7 @@ public void subscribe(Observer observer) { to.assertValues("hello", "hello"); } - @Test(timeout = 30000) + @Test public void issue2890NoStackoverflow() throws InterruptedException { final ExecutorService executor = Executors.newFixedThreadPool(2); final Scheduler sch = Schedulers.from(executor); @@ -732,7 +732,7 @@ public void onError(Throwable e) { assertEquals(n, counter.get()); } - @Test//(timeout = 100000) + @Test public void concatMapRangeAsyncLoopIssue2876() { final long durationSeconds = 2; final long startTime = System.currentTimeMillis(); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatWithCompletableTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatWithCompletableTest.java index d77c64a7a9..33ae622f9e 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatWithCompletableTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatWithCompletableTest.java @@ -24,7 +24,7 @@ import io.reactivex.observers.TestObserver; import io.reactivex.subjects.CompletableSubject; -public class ObservableConcatWithCompletableTest { +public class ObservableConcatWithCompletableTest extends RxJavaTest { @Test public void normal() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatWithMaybeTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatWithMaybeTest.java index d982dc0152..8842a2a611 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatWithMaybeTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatWithMaybeTest.java @@ -24,7 +24,7 @@ import io.reactivex.observers.TestObserver; import io.reactivex.subjects.MaybeSubject; -public class ObservableConcatWithMaybeTest { +public class ObservableConcatWithMaybeTest extends RxJavaTest { @Test public void normalEmpty() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatWithSingleTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatWithSingleTest.java index 9cdecb02fe..c2c695d17e 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatWithSingleTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableConcatWithSingleTest.java @@ -23,7 +23,7 @@ import io.reactivex.observers.TestObserver; import io.reactivex.subjects.SingleSubject; -public class ObservableConcatWithSingleTest { +public class ObservableConcatWithSingleTest extends RxJavaTest { @Test public void normal() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableCountTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableCountTest.java index ef4442b338..a5c8773137 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableCountTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableCountTest.java @@ -19,7 +19,7 @@ import io.reactivex.functions.Function; import io.reactivex.testsupport.TestHelper; -public class ObservableCountTest { +public class ObservableCountTest extends RxJavaTest { @Test public void dispose() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableCreateTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableCreateTest.java index 07114f0847..8c3506c26c 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableCreateTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableCreateTest.java @@ -27,7 +27,7 @@ import io.reactivex.plugins.RxJavaPlugins; import io.reactivex.testsupport.*; -public class ObservableCreateTest { +public class ObservableCreateTest extends RxJavaTest { @Test(expected = NullPointerException.class) public void nullArgument() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableDebounceTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableDebounceTest.java index b8ada4e3be..a8374a2dfe 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableDebounceTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableDebounceTest.java @@ -36,7 +36,7 @@ import io.reactivex.subjects.*; import io.reactivex.testsupport.*; -public class ObservableDebounceTest { +public class ObservableDebounceTest extends RxJavaTest { private TestScheduler scheduler; private Observer observer; diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableDefaultIfEmptyTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableDefaultIfEmptyTest.java index c46036f003..c9311901c1 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableDefaultIfEmptyTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableDefaultIfEmptyTest.java @@ -22,7 +22,7 @@ import io.reactivex.observers.DefaultObserver; import io.reactivex.testsupport.TestHelper; -public class ObservableDefaultIfEmptyTest { +public class ObservableDefaultIfEmptyTest extends RxJavaTest { @Test public void defaultIfEmpty() { @@ -54,31 +54,4 @@ public void defaultIfEmptyWithEmpty() { verify(observer).onComplete(); verify(observer, never()).onError(any(Throwable.class)); } - - @Test - @Ignore("Subscribers should not throw") - public void emptyButClientThrows() { - final Observer o = TestHelper.mockObserver(); - - Observable.empty().defaultIfEmpty(1).subscribe(new DefaultObserver() { - @Override - public void onNext(Integer t) { - throw new TestException(); - } - - @Override - public void onError(Throwable e) { - o.onError(e); - } - - @Override - public void onComplete() { - o.onComplete(); - } - }); - - verify(o).onError(any(TestException.class)); - verify(o, never()).onNext(any(Integer.class)); - verify(o, never()).onComplete(); - } } diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableDeferTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableDeferTest.java index f6ae2b2efa..6f7e8c231a 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableDeferTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableDeferTest.java @@ -23,7 +23,7 @@ import io.reactivex.testsupport.TestHelper; @SuppressWarnings("unchecked") -public class ObservableDeferTest { +public class ObservableDeferTest extends RxJavaTest { @Test public void defer() throws Throwable { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableDelaySubscriptionOtherTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableDelaySubscriptionOtherTest.java index e175d14d11..4f317398e6 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableDelaySubscriptionOtherTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableDelaySubscriptionOtherTest.java @@ -27,7 +27,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.TestHelper; -public class ObservableDelaySubscriptionOtherTest { +public class ObservableDelaySubscriptionOtherTest extends RxJavaTest { @Test public void noPrematureSubscription() { PublishSubject other = PublishSubject.create(); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableDelayTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableDelayTest.java index f5340e6c7a..1316d7c7e8 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableDelayTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableDelayTest.java @@ -34,7 +34,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.TestHelper; -public class ObservableDelayTest { +public class ObservableDelayTest extends RxJavaTest { private Observer observer; private Observer observer2; diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableDematerializeTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableDematerializeTest.java index dc01f9c755..2fe9ae647d 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableDematerializeTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableDematerializeTest.java @@ -27,7 +27,7 @@ import io.reactivex.plugins.RxJavaPlugins; import io.reactivex.testsupport.*; -public class ObservableDematerializeTest { +public class ObservableDematerializeTest extends RxJavaTest { @Test public void simpleSelector() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableDetachTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableDetachTest.java index 41a09281ef..6b809eb6e8 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableDetachTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableDetachTest.java @@ -25,7 +25,7 @@ import io.reactivex.observers.TestObserver; import io.reactivex.testsupport.TestHelper; -public class ObservableDetachTest { +public class ObservableDetachTest extends RxJavaTest { Object o; @@ -85,33 +85,6 @@ public void range() { to.assertComplete(); } - @Test - @Ignore("Observable doesn't do backpressure") - public void backpressured() throws Exception { -// o = new Object(); -// -// WeakReference wr = new WeakReference(o); -// -// TestObserver to = new TestObserver(0L); -// -// Observable.just(o).count().onTerminateDetach().subscribe(ts); -// -// to.assertNoValues(); -// -// to.request(1); -// -// to.assertValue(1L); -// to.assertComplete(); -// to.assertNoErrors(); -// -// o = null; -// -// System.gc(); -// Thread.sleep(200); -// -// Assert.assertNull("Object retained!", wr.get()); - } - @Test public void justUnsubscribed() throws Exception { o = new Object(); @@ -130,33 +103,6 @@ public void justUnsubscribed() throws Exception { } - @Test - @Ignore("Observable doesn't do backpressure") - public void deferredUpstreamProducer() { -// final AtomicReference> subscriber = new AtomicReference>(); -// -// TestObserver to = new TestObserver(0); -// -// Observable.unsafeCreate(new ObservableSource() { -// @Override -// public void subscribe(Subscriber t) { -// subscriber.set(t); -// } -// }).onTerminateDetach().subscribe(to); -// -// to.request(2); -// -// new ObservableRange(1, 3).subscribe(subscriber.get()); -// -// to.assertValues(1, 2); -// -// to.request(1); -// -// to.assertValues(1, 2, 3); -// to.assertComplete(); -// to.assertNoErrors(); - } - @Test public void dispose() { TestHelper.checkDisposed(Observable.never().onTerminateDetach()); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableDistinctTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableDistinctTest.java index 8a47b87193..9cf7feee01 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableDistinctTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableDistinctTest.java @@ -18,6 +18,7 @@ import java.util.*; +import io.reactivex.RxJavaTest; import org.junit.*; import org.mockito.InOrder; @@ -32,7 +33,7 @@ import io.reactivex.subjects.UnicastSubject; import io.reactivex.testsupport.*; -public class ObservableDistinctTest { +public class ObservableDistinctTest extends RxJavaTest { Observer w; @@ -102,35 +103,6 @@ public void distinctOfNormalSourceWithKeySelector() { verify(w, never()).onError(any(Throwable.class)); } - @Test - @Ignore("Null values no longer allowed") - public void distinctOfSourceWithNulls() { - Observable src = Observable.just(null, "a", "a", null, null, "b", null); - src.distinct().subscribe(w); - - InOrder inOrder = inOrder(w); - inOrder.verify(w, times(1)).onNext(null); - inOrder.verify(w, times(1)).onNext("a"); - inOrder.verify(w, times(1)).onNext("b"); - inOrder.verify(w, times(1)).onComplete(); - inOrder.verify(w, never()).onNext(anyString()); - verify(w, never()).onError(any(Throwable.class)); - } - - @Test - @Ignore("Null values no longer allowed") - public void distinctOfSourceWithExceptionsFromKeySelector() { - Observable src = Observable.just("a", "b", null, "c"); - src.distinct(TO_UPPER_WITH_EXCEPTION).subscribe(w); - - InOrder inOrder = inOrder(w); - inOrder.verify(w, times(1)).onNext("a"); - inOrder.verify(w, times(1)).onNext("b"); - inOrder.verify(w, times(1)).onError(any(NullPointerException.class)); - inOrder.verify(w, never()).onNext(anyString()); - inOrder.verify(w, never()).onComplete(); - } - @Test public void error() { Observable.error(new TestException()) diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableDistinctUntilChangedTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableDistinctUntilChangedTest.java index 03c3875151..0cdc5f82a1 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableDistinctUntilChangedTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableDistinctUntilChangedTest.java @@ -31,7 +31,7 @@ import io.reactivex.subjects.*; import io.reactivex.testsupport.*; -public class ObservableDistinctUntilChangedTest { +public class ObservableDistinctUntilChangedTest extends RxJavaTest { Observer w; Observer w2; @@ -107,37 +107,6 @@ public void distinctUntilChangedOfNormalSourceWithKeySelector() { verify(w, never()).onError(any(Throwable.class)); } - @Test - @Ignore("Null values no longer allowed") - public void distinctUntilChangedOfSourceWithNulls() { - Observable src = Observable.just(null, "a", "a", null, null, "b", null, null); - src.distinctUntilChanged().subscribe(w); - - InOrder inOrder = inOrder(w); - inOrder.verify(w, times(1)).onNext(null); - inOrder.verify(w, times(1)).onNext("a"); - inOrder.verify(w, times(1)).onNext(null); - inOrder.verify(w, times(1)).onNext("b"); - inOrder.verify(w, times(1)).onNext(null); - inOrder.verify(w, times(1)).onComplete(); - inOrder.verify(w, never()).onNext(anyString()); - verify(w, never()).onError(any(Throwable.class)); - } - - @Test - @Ignore("Null values no longer allowed") - public void distinctUntilChangedOfSourceWithExceptionsFromKeySelector() { - Observable src = Observable.just("a", "b", null, "c"); - src.distinctUntilChanged(TO_UPPER_WITH_EXCEPTION).subscribe(w); - - InOrder inOrder = inOrder(w); - inOrder.verify(w, times(1)).onNext("a"); - inOrder.verify(w, times(1)).onNext("b"); - verify(w, times(1)).onError(any(NullPointerException.class)); - inOrder.verify(w, never()).onNext(anyString()); - inOrder.verify(w, never()).onComplete(); - } - @Test public void customComparator() { Observable source = Observable.just("a", "b", "B", "A", "a", "C"); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableDoAfterNextTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableDoAfterNextTest.java index deef1389c4..c90f76278b 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableDoAfterNextTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableDoAfterNextTest.java @@ -17,6 +17,7 @@ import java.util.*; +import io.reactivex.RxJavaTest; import org.junit.Test; import io.reactivex.Observable; @@ -28,7 +29,7 @@ import io.reactivex.subjects.UnicastSubject; import io.reactivex.testsupport.*; -public class ObservableDoAfterNextTest { +public class ObservableDoAfterNextTest extends RxJavaTest { final List values = new ArrayList(); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableDoFinallyTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableDoFinallyTest.java index 99a7eb4cc0..a514ebd588 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableDoFinallyTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableDoFinallyTest.java @@ -17,6 +17,7 @@ import java.util.*; +import io.reactivex.RxJavaTest; import org.junit.Test; import io.reactivex.Observable; @@ -30,7 +31,7 @@ import io.reactivex.subjects.UnicastSubject; import io.reactivex.testsupport.*; -public class ObservableDoFinallyTest implements Action { +public class ObservableDoFinallyTest extends RxJavaTest implements Action { int calls; diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableDoOnEachTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableDoOnEachTest.java index 750c23bb47..839e5d9d03 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableDoOnEachTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableDoOnEachTest.java @@ -33,7 +33,7 @@ import io.reactivex.subjects.UnicastSubject; import io.reactivex.testsupport.*; -public class ObservableDoOnEachTest { +public class ObservableDoOnEachTest extends RxJavaTest { Observer subscribedObserver; Observer sideEffectObserver; diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableDoOnSubscribeTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableDoOnSubscribeTest.java index 12d1f20c5b..0e246f2656 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableDoOnSubscribeTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableDoOnSubscribeTest.java @@ -27,7 +27,7 @@ import io.reactivex.plugins.RxJavaPlugins; import io.reactivex.testsupport.TestHelper; -public class ObservableDoOnSubscribeTest { +public class ObservableDoOnSubscribeTest extends RxJavaTest { @Test public void doOnSubscribe() throws Exception { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableDoOnUnsubscribeTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableDoOnUnsubscribeTest.java index 4d17c2009b..7db29bbb34 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableDoOnUnsubscribeTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableDoOnUnsubscribeTest.java @@ -19,6 +19,7 @@ import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicInteger; +import io.reactivex.RxJavaTest; import org.junit.Test; import io.reactivex.Observable; @@ -27,7 +28,7 @@ import io.reactivex.observers.TestObserver; import io.reactivex.subjects.BehaviorSubject; -public class ObservableDoOnUnsubscribeTest { +public class ObservableDoOnUnsubscribeTest extends RxJavaTest { @Test public void doOnUnsubscribe() throws Exception { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableElementAtTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableElementAtTest.java index 44a9d4540b..95dbd061ab 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableElementAtTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableElementAtTest.java @@ -29,7 +29,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.TestHelper; -public class ObservableElementAtTest { +public class ObservableElementAtTest extends RxJavaTest { @Test public void elementAtObservable() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableFilterTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableFilterTest.java index 5e35c4e7f2..dd3a52f2b3 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableFilterTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableFilterTest.java @@ -26,7 +26,7 @@ import io.reactivex.subjects.UnicastSubject; import io.reactivex.testsupport.*; -public class ObservableFilterTest { +public class ObservableFilterTest extends RxJavaTest { @Test public void filter() { @@ -50,32 +50,6 @@ public boolean test(String t1) { verify(observer, times(1)).onComplete(); } - // FIXME subscribers are not allowed to throw -// @Test -// public void testFatalError() { -// try { -// Observable.just(1) -// .filter(new Predicate() { -// @Override -// public boolean test(Integer t) { -// return true; -// } -// }) -// .first() -// .subscribe(new Consumer() { -// @Override -// public void accept(Integer t) { -// throw new TestException(); -// } -// }); -// Assert.fail("No exception was thrown"); -// } catch (OnErrorNotImplementedException ex) { -// if (!(ex.getCause() instanceof TestException)) { -// Assert.fail("Failed to report the original exception, instead: " + ex.getCause()); -// } -// } -// } - @Test public void dispose() { TestHelper.checkDisposed(Observable.range(1, 5).filter(Functions.alwaysTrue())); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableFinallyTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableFinallyTest.java index e42af7bea6..2bda2a03ee 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableFinallyTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableFinallyTest.java @@ -22,7 +22,7 @@ import io.reactivex.internal.util.ExceptionHelper; import io.reactivex.testsupport.TestHelper; -public class ObservableFinallyTest { +public class ObservableFinallyTest extends RxJavaTest { private Action aAction0; private Observer observer; diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableFirstTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableFirstTest.java index 60ce657dd1..ca176e3c92 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableFirstTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableFirstTest.java @@ -24,7 +24,7 @@ import io.reactivex.functions.Predicate; import io.reactivex.testsupport.TestHelper; -public class ObservableFirstTest { +public class ObservableFirstTest extends RxJavaTest { Observer w; SingleObserver wo; diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableFlatMapCompletableTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableFlatMapCompletableTest.java index 82e5db841c..f351af3b28 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableFlatMapCompletableTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableFlatMapCompletableTest.java @@ -30,7 +30,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.*; -public class ObservableFlatMapCompletableTest { +public class ObservableFlatMapCompletableTest extends RxJavaTest { @Test public void normalObservable() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableFlatMapMaybeTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableFlatMapMaybeTest.java index 7d03d137f5..0aedbbfee0 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableFlatMapMaybeTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableFlatMapMaybeTest.java @@ -33,7 +33,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.*; -public class ObservableFlatMapMaybeTest { +public class ObservableFlatMapMaybeTest extends RxJavaTest { @Test public void normal() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableFlatMapSingleTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableFlatMapSingleTest.java index d09f432633..160a33ec1d 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableFlatMapSingleTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableFlatMapSingleTest.java @@ -33,7 +33,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.*; -public class ObservableFlatMapSingleTest { +public class ObservableFlatMapSingleTest extends RxJavaTest { @Test public void normal() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableFlatMapTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableFlatMapTest.java index d8c3e4622e..be5ef458bb 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableFlatMapTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableFlatMapTest.java @@ -20,6 +20,7 @@ import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicInteger; +import io.reactivex.RxJavaTest; import org.junit.*; import io.reactivex.Observable; @@ -35,7 +36,7 @@ import io.reactivex.subjects.*; import io.reactivex.testsupport.*; -public class ObservableFlatMapTest { +public class ObservableFlatMapTest extends RxJavaTest { @Test public void normal() { Observer o = TestHelper.mockObserver(); @@ -433,46 +434,7 @@ public void flatMapTransformsMaxConcurrentNormal() { verify(o, never()).onError(any(Throwable.class)); } - @Ignore("Don't care for any reordering") - @Test(timeout = 10000) - public void flatMapRangeAsyncLoop() { - for (int i = 0; i < 2000; i++) { - if (i % 10 == 0) { - System.out.println("flatMapRangeAsyncLoop > " + i); - } - TestObserverEx to = new TestObserverEx(); - Observable.range(0, 1000) - .flatMap(new Function>() { - @Override - public Observable apply(Integer t) { - return Observable.just(t); - } - }) - .observeOn(Schedulers.computation()) - .subscribe(to); - - to.awaitDone(2500, TimeUnit.MILLISECONDS); - if (to.completions() == 0) { - System.out.println(to.values().size()); - } - to.assertTerminated(); - to.assertNoErrors(); - List list = to.values(); - assertEquals(1000, list.size()); - boolean f = false; - for (int j = 0; j < list.size(); j++) { - if (list.get(j) != j) { - System.out.println(j + " " + list.get(j)); - f = true; - } - } - if (f) { - Assert.fail("Results are out of order!"); - } - } - } - - @Test(timeout = 30000) + @Test public void flatMapRangeMixedAsyncLoop() { for (int i = 0; i < 2000; i++) { if (i % 10 == 0) { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableFlattenIterableTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableFlattenIterableTest.java index 3185870007..ce2dbc0126 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableFlattenIterableTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableFlattenIterableTest.java @@ -18,6 +18,7 @@ import java.util.*; import java.util.concurrent.atomic.AtomicInteger; +import io.reactivex.RxJavaTest; import org.junit.Test; import io.reactivex.Observable; @@ -26,7 +27,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.TestHelper; -public class ObservableFlattenIterableTest { +public class ObservableFlattenIterableTest extends RxJavaTest { @Test public void dispose() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableForEachTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableForEachTest.java index 979e41404b..db89ab942e 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableForEachTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableForEachTest.java @@ -17,6 +17,7 @@ import java.util.*; +import io.reactivex.RxJavaTest; import org.junit.Test; import io.reactivex.Observable; @@ -28,7 +29,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.TestHelper; -public class ObservableForEachTest { +public class ObservableForEachTest extends RxJavaTest { @Test public void forEachWile() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableFromCallableTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableFromCallableTest.java index c21e44ec76..da737a67d6 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableFromCallableTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableFromCallableTest.java @@ -35,7 +35,7 @@ import io.reactivex.schedulers.Schedulers; import io.reactivex.testsupport.TestHelper; -public class ObservableFromCallableTest { +public class ObservableFromCallableTest extends RxJavaTest { @SuppressWarnings("unchecked") @Test diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableFromIterableTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableFromIterableTest.java index 3ca8f976d2..c7e0e289eb 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableFromIterableTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableFromIterableTest.java @@ -19,6 +19,7 @@ import java.util.*; import java.util.concurrent.atomic.AtomicBoolean; +import io.reactivex.RxJavaTest; import org.junit.Test; import org.mockito.Mockito; @@ -33,7 +34,7 @@ import io.reactivex.observers.*; import io.reactivex.testsupport.*; -public class ObservableFromIterableTest { +public class ObservableFromIterableTest extends RxJavaTest { @Test(expected = NullPointerException.class) public void nullValue() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableFromSupplierTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableFromSupplierTest.java index fc8860c0c3..6f91833346 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableFromSupplierTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableFromSupplierTest.java @@ -35,7 +35,7 @@ import io.reactivex.schedulers.Schedulers; import io.reactivex.testsupport.TestHelper; -public class ObservableFromSupplierTest { +public class ObservableFromSupplierTest extends RxJavaTest { @SuppressWarnings("unchecked") @Test diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableFromTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableFromTest.java index 36f0797445..34860d473c 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableFromTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableFromTest.java @@ -25,7 +25,7 @@ import io.reactivex.schedulers.Schedulers; import io.reactivex.testsupport.*; -public class ObservableFromTest { +public class ObservableFromTest extends RxJavaTest { @Test public void fromFutureTimeout() throws Exception { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableGenerateTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableGenerateTest.java index 28b16fae7b..69581b36ff 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableGenerateTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableGenerateTest.java @@ -26,7 +26,7 @@ import io.reactivex.plugins.RxJavaPlugins; import io.reactivex.testsupport.TestHelper; -public class ObservableGenerateTest { +public class ObservableGenerateTest extends RxJavaTest { @Test public void statefulBiconsumer() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableGroupByTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableGroupByTest.java index 3663d0e4ce..7e657d6acc 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableGroupByTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableGroupByTest.java @@ -36,7 +36,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.*; -public class ObservableGroupByTest { +public class ObservableGroupByTest extends RxJavaTest { final Function length = new Function() { @Override @@ -499,7 +499,7 @@ public void onNext(Integer s) { assertEquals(100, eventCounter.get()); } - @Test(timeout = 1000) + @Test public void completionIfInnerNotSubscribed() throws InterruptedException { final CountDownLatch latch = new CountDownLatch(1); final AtomicInteger eventCounter = new AtomicInteger(); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableGroupJoinTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableGroupJoinTest.java index 53100289bb..668c44f875 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableGroupJoinTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableGroupJoinTest.java @@ -20,6 +20,7 @@ import java.util.*; +import io.reactivex.RxJavaTest; import org.junit.*; import org.mockito.MockitoAnnotations; @@ -36,7 +37,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.*; -public class ObservableGroupJoinTest { +public class ObservableGroupJoinTest extends RxJavaTest { Observer observer = TestHelper.mockObserver(); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableHideTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableHideTest.java index aebce3f1ce..0f48e67cd9 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableHideTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableHideTest.java @@ -24,7 +24,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.TestHelper; -public class ObservableHideTest { +public class ObservableHideTest extends RxJavaTest { @Test public void hiding() { PublishSubject src = PublishSubject.create(); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableIgnoreElementsTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableIgnoreElementsTest.java index 778cdab5c4..e01eb5d9d6 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableIgnoreElementsTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableIgnoreElementsTest.java @@ -17,6 +17,7 @@ import java.util.concurrent.atomic.*; +import io.reactivex.RxJavaTest; import org.junit.Test; import io.reactivex.Observable; @@ -26,7 +27,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.*; -public class ObservableIgnoreElementsTest { +public class ObservableIgnoreElementsTest extends RxJavaTest { @Test public void withEmptyObservable() { @@ -63,8 +64,6 @@ public void completedOkObservable() { to.assertNoErrors(); to.assertNoValues(); to.assertTerminated(); - // FIXME no longer testable -// ts.assertUnsubscribed(); } @Test @@ -74,8 +73,6 @@ public void errorReceivedObservable() { Observable.error(ex).ignoreElements().toObservable().subscribe(to); to.assertNoValues(); to.assertTerminated(); - // FIXME no longer testable -// ts.assertUnsubscribed(); to.assertError(TestException.class); to.assertErrorMessage("boo"); } @@ -129,8 +126,6 @@ public void completedOk() { to.assertNoErrors(); to.assertNoValues(); to.assertTerminated(); - // FIXME no longer testable -// ts.assertUnsubscribed(); } @Test @@ -140,8 +135,6 @@ public void errorReceived() { Observable.error(ex).ignoreElements().subscribe(to); to.assertNoValues(); to.assertTerminated(); - // FIXME no longer testable -// ts.assertUnsubscribed(); to.assertError(TestException.class); to.assertErrorMessage("boo"); } diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableInternalHelperTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableInternalHelperTest.java index c748cf67cb..9fd6aba614 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableInternalHelperTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableInternalHelperTest.java @@ -13,11 +13,13 @@ package io.reactivex.internal.operators.observable; import static org.junit.Assert.*; + +import io.reactivex.RxJavaTest; import org.junit.Test; import io.reactivex.testsupport.TestHelper; -public class ObservableInternalHelperTest { +public class ObservableInternalHelperTest extends RxJavaTest { @Test public void utilityClass() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableIntervalRangeTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableIntervalRangeTest.java index 289a6e3672..e39086564d 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableIntervalRangeTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableIntervalRangeTest.java @@ -23,7 +23,7 @@ import io.reactivex.schedulers.Schedulers; import io.reactivex.testsupport.TestHelper; -public class ObservableIntervalRangeTest { +public class ObservableIntervalRangeTest extends RxJavaTest { @Test public void simple() throws Exception { @@ -78,7 +78,7 @@ public void dispose() { TestHelper.checkDisposed(Observable.intervalRange(1, 2, 1, 1, TimeUnit.MILLISECONDS)); } - @Test(timeout = 2000) + @Test public void cancel() { Observable.intervalRange(0, 20, 1, 1, TimeUnit.MILLISECONDS, Schedulers.trampoline()) .take(10) diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableIntervalTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableIntervalTest.java index 68a5990eae..0d243ad948 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableIntervalTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableIntervalTest.java @@ -23,14 +23,14 @@ import io.reactivex.schedulers.*; import io.reactivex.testsupport.TestHelper; -public class ObservableIntervalTest { +public class ObservableIntervalTest extends RxJavaTest { @Test public void dispose() { TestHelper.checkDisposed(Observable.interval(1, TimeUnit.MILLISECONDS, new TestScheduler())); } - @Test(timeout = 2000) + @Test public void cancel() { Observable.interval(1, TimeUnit.MILLISECONDS, Schedulers.trampoline()) .take(10) diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableJoinTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableJoinTest.java index 0379b7ba88..bd68fec0fd 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableJoinTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableJoinTest.java @@ -32,7 +32,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.*; -public class ObservableJoinTest { +public class ObservableJoinTest extends RxJavaTest { Observer observer = TestHelper.mockObserver(); BiFunction add = new BiFunction() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableLastTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableLastTest.java index 88573d921c..17192092cf 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableLastTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableLastTest.java @@ -26,7 +26,7 @@ import io.reactivex.functions.*; import io.reactivex.testsupport.TestHelper; -public class ObservableLastTest { +public class ObservableLastTest extends RxJavaTest { @Test public void lastWithElements() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableLiftTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableLiftTest.java index 4479bb14a3..1db87fc9d9 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableLiftTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableLiftTest.java @@ -19,7 +19,7 @@ import io.reactivex.*; import io.reactivex.exceptions.TestException; -public class ObservableLiftTest { +public class ObservableLiftTest extends RxJavaTest { @Test public void callbackCrash() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableMapNotificationTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableMapNotificationTest.java index 1cc76cdad9..8c6079fdd2 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableMapNotificationTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableMapNotificationTest.java @@ -24,7 +24,7 @@ import io.reactivex.observers.TestObserver; import io.reactivex.testsupport.*; -public class ObservableMapNotificationTest { +public class ObservableMapNotificationTest extends RxJavaTest { @Test public void just() { TestObserver to = new TestObserver(); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableMapTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableMapTest.java index 84177b0be2..0be3403349 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableMapTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableMapTest.java @@ -18,6 +18,7 @@ import java.util.*; +import io.reactivex.RxJavaTest; import org.junit.*; import io.reactivex.Observable; @@ -30,7 +31,7 @@ import io.reactivex.subjects.UnicastSubject; import io.reactivex.testsupport.*; -public class ObservableMapTest { +public class ObservableMapTest extends RxJavaTest { Observer stringObserver; Observer stringObserver2; diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableMaterializeTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableMaterializeTest.java index d0a9ac9b49..08d272bb4d 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableMaterializeTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableMaterializeTest.java @@ -28,7 +28,7 @@ import io.reactivex.observers.DefaultObserver; import io.reactivex.testsupport.*; -public class ObservableMaterializeTest { +public class ObservableMaterializeTest extends RxJavaTest { @Test public void materialize1() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableMergeDelayErrorTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableMergeDelayErrorTest.java index f748091cc0..436cbd3c4f 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableMergeDelayErrorTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableMergeDelayErrorTest.java @@ -19,6 +19,7 @@ import java.util.*; import java.util.concurrent.*; +import io.reactivex.RxJavaTest; import org.junit.*; import org.mockito.InOrder; @@ -30,7 +31,7 @@ import io.reactivex.observers.DefaultObserver; import io.reactivex.testsupport.*; -public class ObservableMergeDelayErrorTest { +public class ObservableMergeDelayErrorTest extends RxJavaTest { Observer stringObserver; @@ -284,7 +285,7 @@ public void mergeArrayWithThreading() { verify(stringObserver, times(1)).onComplete(); } - @Test(timeout = 1000L) + @Test public void synchronousError() { final Observable> o1 = Observable.error(new RuntimeException("unit test")); @@ -431,62 +432,6 @@ public void onNext(String args) { } - @Test - @Ignore("Subscribers should not throw") - public void mergeSourceWhichDoesntPropagateExceptionBack() { - Observable source = Observable.unsafeCreate(new ObservableSource() { - @Override - public void subscribe(Observer t1) { - t1.onSubscribe(Disposables.empty()); - try { - t1.onNext(0); - } catch (Throwable swallow) { - - } - t1.onNext(1); - t1.onComplete(); - } - }); - - Observable result = Observable.mergeDelayError(source, Observable.just(2)); - - final Observer o = TestHelper.mockObserver(); - InOrder inOrder = inOrder(o); - - result.subscribe(new DefaultObserver() { - int calls; - @Override - public void onNext(Integer t) { - if (calls++ == 0) { - throw new TestException(); - } - o.onNext(t); - } - - @Override - public void onError(Throwable e) { - o.onError(e); - } - - @Override - public void onComplete() { - o.onComplete(); - } - - }); - - /* - * If the child onNext throws, why would we keep accepting values from - * other sources? - */ - inOrder.verify(o).onNext(2); - inOrder.verify(o, never()).onNext(0); - inOrder.verify(o, never()).onNext(1); - inOrder.verify(o, never()).onNext(anyInt()); - inOrder.verify(o).onError(any(TestException.class)); - verify(o, never()).onComplete(); - } - @Test public void errorInParentObservable() { TestObserverEx to = new TestObserverEx(); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableMergeMaxConcurrentTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableMergeMaxConcurrentTest.java index 31355a4629..e9c2ea46e9 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableMergeMaxConcurrentTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableMergeMaxConcurrentTest.java @@ -19,6 +19,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; +import io.reactivex.RxJavaTest; import org.junit.*; import io.reactivex.Observable; @@ -30,7 +31,7 @@ import io.reactivex.schedulers.Schedulers; import io.reactivex.testsupport.*; -public class ObservableMergeMaxConcurrentTest { +public class ObservableMergeMaxConcurrentTest extends RxJavaTest { Observer stringObserver; @@ -193,7 +194,7 @@ public void simpleOneLess() { } } - @Test//(timeout = 20000) + @Test public void simpleAsyncLoop() { IoScheduler ios = (IoScheduler)Schedulers.io(); int c = ios.size(); @@ -206,7 +207,7 @@ public void simpleAsyncLoop() { } } - @Test(timeout = 30000) + @Test public void simpleAsync() { for (int i = 1; i < 50; i++) { TestObserver to = new TestObserver(); @@ -227,14 +228,14 @@ public void simpleAsync() { } } - @Test(timeout = 30000) + @Test public void simpleOneLessAsyncLoop() { for (int i = 0; i < 200; i++) { simpleOneLessAsync(); } } - @Test(timeout = 30000) + @Test public void simpleOneLessAsync() { long t = System.currentTimeMillis(); for (int i = 2; i < 50; i++) { @@ -259,7 +260,7 @@ public void simpleOneLessAsync() { } } - @Test(timeout = 5000) + @Test public void take() throws Exception { List> sourceList = new ArrayList>(3); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableMergeTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableMergeTest.java index 5431d1e045..b0f5f86271 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableMergeTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableMergeTest.java @@ -34,7 +34,7 @@ import io.reactivex.schedulers.*; import io.reactivex.testsupport.*; -public class ObservableMergeTest { +public class ObservableMergeTest extends RxJavaTest { Observer stringObserver; @@ -123,7 +123,7 @@ public void mergeList() { verify(stringObserver, times(2)).onNext("hello"); } - @Test(timeout = 1000) + @Test public void unSubscribeObservableOfObservables() throws InterruptedException { final AtomicBoolean unsubscribed = new AtomicBoolean(); @@ -337,25 +337,6 @@ public void error2() { verify(stringObserver, times(0)).onNext("nine"); } - @Test - @Ignore("Subscribe should not throw") - public void thrownErrorHandling() { - TestObserverEx to = new TestObserverEx(); - Observable o1 = Observable.unsafeCreate(new ObservableSource() { - - @Override - public void subscribe(Observer observer) { - throw new RuntimeException("fail"); - } - - }); - - Observable.merge(o1, o1).subscribe(to); - to.awaitDone(1000, TimeUnit.MILLISECONDS); - to.assertTerminated(); - System.out.println("Error: " + to.errors()); - } - private static class TestSynchronousObservable implements ObservableSource { @Override @@ -535,7 +516,7 @@ public void onComplete() { }); } - @Test//(timeout = 10000) + @Test public void concurrency() { Observable o = Observable.range(1, 10000).subscribeOn(Schedulers.newThread()); @@ -728,7 +709,7 @@ public void onNext(Integer t) { * This requires merge to also obey the Product.request values coming from it's child Observer. * @throws InterruptedException if the test is interrupted */ - @Test(timeout = 10000) + @Test public void backpressureDownstreamWithConcurrentStreams() throws InterruptedException { final AtomicInteger generated1 = new AtomicInteger(); Observable o1 = createInfiniteObservable(generated1).subscribeOn(Schedulers.computation()); @@ -777,7 +758,7 @@ public void onNext(Integer t) { * * @throws InterruptedException if the await is interrupted */ - @Test(timeout = 5000) + @Test public void backpressureBothUpstreamAndDownstreamWithRegularObservables() throws InterruptedException { final AtomicInteger generated1 = new AtomicInteger(); Observable> o1 = createInfiniteObservable(generated1).map(new Function>() { @@ -822,47 +803,6 @@ public void onNext(Integer t) { // assertTrue(generated1.get() >= Observable.bufferSize() && generated1.get() <= Observable.bufferSize() * 4); } - @Test - @Ignore("Null values not permitted") - public void mergeWithNullValues() { - System.out.println("mergeWithNullValues"); - TestObserverEx to = new TestObserverEx(); - Observable.merge(Observable.just(null, "one"), Observable.just("two", null)).subscribe(to); - to.assertTerminated(); - to.assertNoErrors(); - to.assertValues(null, "one", "two", null); - } - - @Test - @Ignore("Null values are no longer permitted") - public void mergeWithTerminalEventAfterUnsubscribe() { - System.out.println("mergeWithTerminalEventAfterUnsubscribe"); - TestObserver to = new TestObserver(); - Observable bad = Observable.unsafeCreate(new ObservableSource() { - - @Override - public void subscribe(Observer observer) { - observer.onNext("two"); - // FIXME can't cancel downstream -// s.unsubscribe(); -// s.onComplete(); - } - - }); - Observable.merge(Observable.just(null, "one"), bad).subscribe(to); - to.assertNoErrors(); - to.assertValues(null, "one", "two"); - } - - @Test - @Ignore("Null values are not permitted") - public void mergingNullObservable() { - TestObserver to = new TestObserver(); - Observable.merge(Observable.just("one"), null).subscribe(to); - to.assertNoErrors(); - to.assertValue("one"); - } - @Test public void merge1AsyncStreamOf1() { TestObserver to = new TestObserver(); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableMergeWithCompletableTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableMergeWithCompletableTest.java index 1d138993ea..31ab72f78e 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableMergeWithCompletableTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableMergeWithCompletableTest.java @@ -25,7 +25,7 @@ import io.reactivex.subjects.*; import io.reactivex.testsupport.TestHelper; -public class ObservableMergeWithCompletableTest { +public class ObservableMergeWithCompletableTest extends RxJavaTest { @Test public void normal() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableMergeWithMaybeTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableMergeWithMaybeTest.java index e11c925cef..d7e27be02f 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableMergeWithMaybeTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableMergeWithMaybeTest.java @@ -30,7 +30,7 @@ import io.reactivex.subjects.*; import io.reactivex.testsupport.TestHelper; -public class ObservableMergeWithMaybeTest { +public class ObservableMergeWithMaybeTest extends RxJavaTest { @Test public void normal() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableMergeWithSingleTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableMergeWithSingleTest.java index cad2dad3bd..8c896bd118 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableMergeWithSingleTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableMergeWithSingleTest.java @@ -30,7 +30,7 @@ import io.reactivex.subjects.*; import io.reactivex.testsupport.TestHelper; -public class ObservableMergeWithSingleTest { +public class ObservableMergeWithSingleTest extends RxJavaTest { @Test public void normal() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableMulticastTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableMulticastTest.java deleted file mode 100644 index 6848d28b99..0000000000 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableMulticastTest.java +++ /dev/null @@ -1,112 +0,0 @@ -/** - * Copyright (c) 2016-present, RxJava Contributors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in - * compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is - * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See - * the License for the specific language governing permissions and limitations under the License. - */ - -package io.reactivex.internal.operators.observable; - -public class ObservableMulticastTest { - // FIXME operator multicast not supported -// -// @Test -// public void testMulticast() { -// Subject source = PublishSubject.create(); -// -// ConnectableObservable multicasted = new OperatorMulticast(source, new PublishSubjectFactory()); -// -// Observer observer = TestHelper.mockObserver(Observer.class); -// multicasted.subscribe(observer); -// -// source.onNext("one"); -// source.onNext("two"); -// -// multicasted.connect(); -// -// source.onNext("three"); -// source.onNext("four"); -// source.onComplete(); -// -// verify(observer, never()).onNext("one"); -// verify(observer, never()).onNext("two"); -// verify(observer, times(1)).onNext("three"); -// verify(observer, times(1)).onNext("four"); -// verify(observer, times(1)).onComplete(); -// -// } -// -// @Test -// public void testMulticastConnectTwice() { -// Subject source = PublishSubject.create(); -// -// ConnectableObservable multicasted = new OperatorMulticast(source, new PublishSubjectFactory()); -// -// @SuppressWarnings("unchecked") -// Observer observer = TestHelper.mockObserver(Observer.class); -// multicasted.subscribe(observer); -// -// source.onNext("one"); -// -// Subscription sub = multicasted.connect(); -// Subscription sub2 = multicasted.connect(); -// -// source.onNext("two"); -// source.onComplete(); -// -// verify(observer, never()).onNext("one"); -// verify(observer, times(1)).onNext("two"); -// verify(observer, times(1)).onComplete(); -// -// assertEquals(sub, sub2); -// -// } -// -// @Test -// public void testMulticastDisconnect() { -// Subject source = PublisherSubject.create(); -// -// ConnectableObservable multicasted = new OperatorMulticast(source, new PublishSubjectFactory()); -// -// @SuppressWarnings("unchecked") -// Observer observer = mock(Observer.class); -// multicasted.subscribe(observer); -// -// source.onNext("one"); -// -// Subscription connection = multicasted.connect(); -// source.onNext("two"); -// -// connection.unsubscribe(); -// source.onNext("three"); -// -// // subscribe again -// multicasted.subscribe(observer); -// // reconnect -// multicasted.connect(); -// source.onNext("four"); -// source.onComplete(); -// -// verify(observer, never()).onNext("one"); -// verify(observer, times(1)).onNext("two"); -// verify(observer, never()).onNext("three"); -// verify(observer, times(1)).onNext("four"); -// verify(observer, times(1)).onComplete(); -// -// } -// -// private static final class PublishSubjectFactory implements Func0> { -// -// @Override -// public Subject call() { -// return PublisherSubject. create(); -// } -// -// } -} diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableObserveOnTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableObserveOnTest.java index 9248b73bcc..815535214f 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableObserveOnTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableObserveOnTest.java @@ -40,7 +40,7 @@ import io.reactivex.subjects.*; import io.reactivex.testsupport.*; -public class ObservableObserveOnTest { +public class ObservableObserveOnTest extends RxJavaTest { /** * This is testing a no-op path since it uses Schedulers.immediate() which will not do scheduling. diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableOnErrorResumeNextTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableOnErrorResumeNextTest.java index 68ff5f77b1..a1edf3e487 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableOnErrorResumeNextTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableOnErrorResumeNextTest.java @@ -32,7 +32,7 @@ import io.reactivex.schedulers.Schedulers; import io.reactivex.testsupport.*; -public class ObservableOnErrorResumeNextTest { +public class ObservableOnErrorResumeNextTest extends RxJavaTest { @Test public void resumeNextWithSynchronousExecution() { @@ -144,94 +144,6 @@ public Observable apply(Throwable t1) { verify(observer, times(0)).onComplete(); } - /** - * Test that we receive the onError if an exception is thrown from an operator that - * does not have manual try/catch handling like map does. - */ - @Test - @Ignore("Failed operator may leave the child Observer in an inconsistent state which prevents further error delivery.") - public void onErrorResumeReceivesErrorFromPreviousNonProtectedOperator() { - TestObserverEx to = new TestObserverEx(); - Observable.just(1).lift(new ObservableOperator() { - - @Override - public Observer apply(Observer t1) { - throw new RuntimeException("failed"); - } - - }).onErrorResumeNext(new Function>() { - - @Override - public Observable apply(Throwable t1) { - if (t1.getMessage().equals("failed")) { - return Observable.just("success"); - } else { - return Observable.error(t1); - } - } - - }).subscribe(to); - - to.assertTerminated(); - System.out.println(to.values()); - to.assertValue("success"); - } - - /** - * Test that we receive the onError if an exception is thrown from an operator that - * does not have manual try/catch handling like map does. - */ - @Test - @Ignore("A crashing operator may leave the downstream in an inconsistent state and not suitable for event delivery") - public void onErrorResumeReceivesErrorFromPreviousNonProtectedOperatorOnNext() { - TestObserverEx to = new TestObserverEx(); - Observable.just(1).lift(new ObservableOperator() { - - @Override - public Observer apply(final Observer t1) { - return new Observer() { - - @Override - public void onSubscribe(Disposable d) { - t1.onSubscribe(d); - } - - @Override - public void onComplete() { - throw new RuntimeException("failed"); - } - - @Override - public void onError(Throwable e) { - throw new RuntimeException("failed"); - } - - @Override - public void onNext(Integer t) { - throw new RuntimeException("failed"); - } - - }; - } - - }).onErrorResumeNext(new Function>() { - - @Override - public Observable apply(Throwable t1) { - if (t1.getMessage().equals("failed")) { - return Observable.just("success"); - } else { - return Observable.error(t1); - } - } - - }).subscribe(to); - - to.assertTerminated(); - System.out.println(to.values()); - to.assertValue("success"); - } - @Test public void mapResumeAsyncNext() { // Trigger multiple failures diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableOnErrorResumeWithTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableOnErrorResumeWithTest.java index 95e4a3b54f..dd7327c7d4 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableOnErrorResumeWithTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableOnErrorResumeWithTest.java @@ -28,7 +28,7 @@ import io.reactivex.schedulers.Schedulers; import io.reactivex.testsupport.TestHelper; -public class ObservableOnErrorResumeWithTest { +public class ObservableOnErrorResumeWithTest extends RxJavaTest { @Test public void resumeNext() { @@ -100,53 +100,6 @@ public String apply(String s) { verify(observer, times(1)).onNext("threeResume"); } - @Test - @Ignore("Publishers should not throw") - public void resumeNextWithFailureOnSubscribe() { - Observable testObservable = Observable.unsafeCreate(new ObservableSource() { - - @Override - public void subscribe(Observer t1) { - throw new RuntimeException("force failure"); - } - - }); - Observable resume = Observable.just("resume"); - Observable observable = testObservable.onErrorResumeWith(resume); - - Observer observer = TestHelper.mockObserver(); - observable.subscribe(observer); - - verify(observer, Mockito.never()).onError(any(Throwable.class)); - verify(observer, times(1)).onComplete(); - verify(observer, times(1)).onNext("resume"); - } - - @Test - @Ignore("Publishers should not throw") - public void resumeNextWithFailureOnSubscribeAsync() { - Observable testObservable = Observable.unsafeCreate(new ObservableSource() { - - @Override - public void subscribe(Observer t1) { - throw new RuntimeException("force failure"); - } - - }); - Observable resume = Observable.just("resume"); - Observable observable = testObservable.subscribeOn(Schedulers.io()).onErrorResumeWith(resume); - - Observer observer = TestHelper.mockObserver(); - TestObserver to = new TestObserver(observer); - observable.subscribe(to); - - to.awaitDone(5, TimeUnit.SECONDS); - - verify(observer, Mockito.never()).onError(any(Throwable.class)); - verify(observer, times(1)).onComplete(); - verify(observer, times(1)).onNext("resume"); - } - static class TestObservable implements ObservableSource { final Disposable upstream; diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableOnErrorReturnTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableOnErrorReturnTest.java index f51a673645..bec8f00b9a 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableOnErrorReturnTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableOnErrorReturnTest.java @@ -30,7 +30,7 @@ import io.reactivex.schedulers.Schedulers; import io.reactivex.testsupport.TestHelper; -public class ObservableOnErrorReturnTest { +public class ObservableOnErrorReturnTest extends RxJavaTest { @Test public void resumeNext() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservablePublishTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservablePublishTest.java index 8150cf0ece..06e76ed912 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservablePublishTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservablePublishTest.java @@ -36,7 +36,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.*; -public class ObservablePublishTest { +public class ObservablePublishTest extends RxJavaTest { @Test public void publish() throws InterruptedException { @@ -187,7 +187,7 @@ public boolean test(Integer i) { System.out.println(to.values()); } - @Test(timeout = 10000) + @Test public void backpressureTwoConsumers() { final AtomicInteger sourceEmission = new AtomicInteger(); final AtomicBoolean sourceUnsubscribed = new AtomicBoolean(); @@ -664,7 +664,7 @@ public ObservableSource apply(Observable v) throws Exception { assertFalse(ps.hasObservers()); } - @Test(timeout = 5000) + @Test public void selectorLatecommer() { Observable.range(1, 5) .publish(new Function, ObservableSource>() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableRangeLongTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableRangeLongTest.java index ca9237a399..1608d86b37 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableRangeLongTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableRangeLongTest.java @@ -27,7 +27,7 @@ import io.reactivex.observers.*; import io.reactivex.testsupport.*; -public class ObservableRangeLongTest { +public class ObservableRangeLongTest extends RxJavaTest { @Test public void rangeStartAt2Count3() { Observer observer = TestHelper.mockObserver(); @@ -134,7 +134,7 @@ public void onNext(Long t) { assertTrue(completed.get()); } - @Test(timeout = 1000) + @Test public void nearMaxValueWithoutBackpressure() { TestObserver to = new TestObserver(); Observable.rangeLong(Long.MAX_VALUE - 1L, 2L).subscribe(to); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableRangeTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableRangeTest.java index e75f35456c..f6c826ed80 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableRangeTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableRangeTest.java @@ -27,7 +27,7 @@ import io.reactivex.observers.*; import io.reactivex.testsupport.*; -public class ObservableRangeTest { +public class ObservableRangeTest extends RxJavaTest { @Test public void rangeStartAt2Count3() { @@ -135,7 +135,7 @@ public void onNext(Integer t) { assertTrue(completed.get()); } - @Test(timeout = 1000) + @Test public void nearMaxValueWithoutBackpressure() { TestObserver to = new TestObserver(); Observable.range(Integer.MAX_VALUE - 1, 2).subscribe(to); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableRedoTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableRedoTest.java index 0bcba7d31c..546b6eaa4e 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableRedoTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableRedoTest.java @@ -20,7 +20,7 @@ import io.reactivex.functions.Function; import io.reactivex.observers.TestObserver; -public class ObservableRedoTest { +public class ObservableRedoTest extends RxJavaTest { @Test public void redoCancel() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableReduceTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableReduceTest.java index 628bc63f5e..f05ee178a5 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableReduceTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableReduceTest.java @@ -28,7 +28,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.TestHelper; -public class ObservableReduceTest { +public class ObservableReduceTest extends RxJavaTest { Observer observer; SingleObserver singleObserver; diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableRefCountTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableRefCountTest.java index c3db4fe0e8..abc0be1d77 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableRefCountTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableRefCountTest.java @@ -41,7 +41,7 @@ import io.reactivex.subjects.*; import io.reactivex.testsupport.*; -public class ObservableRefCountTest { +public class ObservableRefCountTest extends RxJavaTest { @Test public void refCountAsync() { @@ -512,7 +512,7 @@ public Integer apply(Integer t1, Integer t2) { to2.assertValue(30); } - @Test(timeout = 10000) + @Test public void upstreamErrorAllowsRetry() throws InterruptedException { final AtomicInteger intervalSubscribed = new AtomicInteger(); Observable interval = @@ -973,7 +973,7 @@ public void badSourceCompleteDisconnect() { } } - @Test(timeout = 7500) + @Test public void blockingSourceAsnycCancel() throws Exception { BehaviorSubject bs = BehaviorSubject.createDefault(1); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableRepeatTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableRepeatTest.java index 521a2ca0ef..a8b6e72ce3 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableRepeatTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableRepeatTest.java @@ -20,6 +20,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; +import io.reactivex.RxJavaTest; import org.junit.Test; import io.reactivex.Observable; @@ -34,9 +35,9 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.*; -public class ObservableRepeatTest { +public class ObservableRepeatTest extends RxJavaTest { - @Test(timeout = 2000) + @Test public void repetition() { int num = 10; final AtomicInteger count = new AtomicInteger(); @@ -53,14 +54,14 @@ public void subscribe(final Observer o) { assertEquals(num, value); } - @Test(timeout = 2000) + @Test public void repeatTake() { Observable xs = Observable.just(1, 2); Object[] ys = xs.repeat().subscribeOn(Schedulers.newThread()).take(4).toList().blockingGet().toArray(); assertArrayEquals(new Object[] { 1, 2, 1, 2 }, ys); } - @Test(timeout = 20000) + @Test public void noStackOverFlow() { Observable.just(1).repeat().subscribeOn(Schedulers.newThread()).take(100000).blockingLast(); } @@ -99,7 +100,7 @@ public Integer apply(Integer t1) { assertArrayEquals(new Object[] { 1, 2, 1, 2 }, ys); } - @Test(timeout = 2000) + @Test public void repeatAndTake() { Observer o = TestHelper.mockObserver(); @@ -110,7 +111,7 @@ public void repeatAndTake() { verify(o, never()).onError(any(Throwable.class)); } - @Test(timeout = 2000) + @Test public void repeatLimited() { Observer o = TestHelper.mockObserver(); @@ -121,7 +122,7 @@ public void repeatLimited() { verify(o, never()).onError(any(Throwable.class)); } - @Test(timeout = 2000) + @Test public void repeatError() { Observer o = TestHelper.mockObserver(); @@ -133,7 +134,7 @@ public void repeatError() { } - @Test(timeout = 2000) + @Test public void repeatZero() { Observer o = TestHelper.mockObserver(); @@ -144,7 +145,7 @@ public void repeatZero() { verify(o, never()).onError(any(Throwable.class)); } - @Test(timeout = 2000) + @Test public void repeatOne() { Observer o = TestHelper.mockObserver(); @@ -173,7 +174,7 @@ public void repeatAndDistinctUnbounded() { } /** Issue #2844: wrong target of request. */ - @Test(timeout = 3000) + @Test public void repeatRetarget() { final List concatBase = new ArrayList(); TestObserver to = new TestObserver(); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableReplayEagerTruncateTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableReplayEagerTruncateTest.java index d41795c666..348aa71be3 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableReplayEagerTruncateTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableReplayEagerTruncateTest.java @@ -43,7 +43,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.*; -public class ObservableReplayEagerTruncateTest { +public class ObservableReplayEagerTruncateTest extends RxJavaTest { @Test public void bufferedReplay() { PublishSubject source = PublishSubject.create(); @@ -1067,36 +1067,6 @@ public void valuesAndThenError() { Assert.assertEquals(1, to2.errors().size()); } - @Test - @Ignore("onNext should not throw") - public void unsafeChildThrows() { - final AtomicInteger count = new AtomicInteger(); - - Observable source = Observable.range(1, 100) - .doOnNext(new Consumer() { - @Override - public void accept(Integer t) { - count.getAndIncrement(); - } - }) - .replay().autoConnect(); - - TestObserver to = new TestObserver() { - @Override - public void onNext(Integer t) { - throw new TestException(); - } - }; - - source.subscribe(to); - - Assert.assertEquals(100, count.get()); - - to.assertNoValues(); - to.assertNotComplete(); - to.assertError(TestException.class); - } - @Test public void replayTime() { Observable.just(1).replay(1, TimeUnit.MINUTES, Schedulers.computation(), true) diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableReplayTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableReplayTest.java index 9911442ba8..952d2bcade 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableReplayTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableReplayTest.java @@ -21,6 +21,7 @@ import java.util.concurrent.*; import java.util.concurrent.atomic.*; +import io.reactivex.RxJavaTest; import org.junit.*; import org.mockito.InOrder; @@ -42,7 +43,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.*; -public class ObservableReplayTest { +public class ObservableReplayTest extends RxJavaTest { @Test public void bufferedReplay() { PublishSubject source = PublishSubject.create(); @@ -1066,36 +1067,6 @@ public void valuesAndThenError() { Assert.assertEquals(1, to2.errors().size()); } - @Test - @Ignore("onNext should not throw") - public void unsafeChildThrows() { - final AtomicInteger count = new AtomicInteger(); - - Observable source = Observable.range(1, 100) - .doOnNext(new Consumer() { - @Override - public void accept(Integer t) { - count.getAndIncrement(); - } - }) - .replay().autoConnect(); - - TestObserver to = new TestObserver() { - @Override - public void onNext(Integer t) { - throw new TestException(); - } - }; - - source.subscribe(to); - - Assert.assertEquals(100, count.get()); - - to.assertNoValues(); - to.assertNotComplete(); - to.assertError(TestException.class); - } - @Test public void replayTime() { Observable.just(1).replay(1, TimeUnit.MINUTES) diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableResourceWrapperTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableResourceWrapperTest.java index bed1f59774..042d78b94b 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableResourceWrapperTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableResourceWrapperTest.java @@ -15,6 +15,7 @@ import static org.junit.Assert.*; +import io.reactivex.RxJavaTest; import org.junit.Test; import io.reactivex.disposables.*; @@ -22,7 +23,7 @@ import io.reactivex.observers.TestObserver; import io.reactivex.testsupport.TestHelper; -public class ObservableResourceWrapperTest { +public class ObservableResourceWrapperTest extends RxJavaTest { @Test public void disposed() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableRetryTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableRetryTest.java index e942c26544..3e090e9b1b 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableRetryTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableRetryTest.java @@ -38,7 +38,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.*; -public class ObservableRetryTest { +public class ObservableRetryTest extends RxJavaTest { @Test public void iterativeBackoff() { @@ -615,7 +615,7 @@ public void onNext(T v) { } } - @Test(timeout = 10000) + @Test public void unsubscribeAfterError() { Observer observer = TestHelper.mockObserver(); @@ -639,7 +639,7 @@ public void unsubscribeAfterError() { assertEquals("Only 1 active subscription", 1, so.maxActive.get()); } - @Test(timeout = 10000) + @Test public void timeoutWithRetry() { Observer observer = TestHelper.mockObserver(); @@ -662,7 +662,7 @@ public void timeoutWithRetry() { assertEquals("Start 6 threads, retry 5 then fail on 6", 6, so.efforts.get()); } - @Test//(timeout = 15000) + @Test public void retryWithBackpressure() throws InterruptedException { final int NUM_LOOPS = 1; for (int j = 0; j < NUM_LOOPS; j++) { @@ -688,7 +688,7 @@ public void retryWithBackpressure() throws InterruptedException { } } - @Test//(timeout = 15000) + @Test public void retryWithBackpressureParallel() throws InterruptedException { final int NUM_LOOPS = 1; final int NUM_RETRIES = Flowable.bufferSize() * 2; @@ -788,7 +788,7 @@ static StringBuilder sequenceFrequency(Iterable it) { return sb; } - @Test//(timeout = 3000) + @Test public void issue1900() throws InterruptedException { Observer observer = TestHelper.mockObserver(); final int NUM_MSG = 1034; @@ -829,7 +829,7 @@ public Observable apply(GroupedObservable t1) { inOrder.verifyNoMoreInteractions(); } - @Test//(timeout = 3000) + @Test public void issue1900SourceNotSupportingBackpressure() { Observer observer = TestHelper.mockObserver(); final int NUM_MSG = 1034; diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableRetryWithPredicateTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableRetryWithPredicateTest.java index 248e62d38f..33e89c1b33 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableRetryWithPredicateTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableRetryWithPredicateTest.java @@ -21,6 +21,7 @@ import java.util.concurrent.*; import java.util.concurrent.atomic.*; +import io.reactivex.RxJavaTest; import org.junit.Test; import org.mockito.InOrder; @@ -35,7 +36,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.*; -public class ObservableRetryWithPredicateTest { +public class ObservableRetryWithPredicateTest extends RxJavaTest { BiPredicate retryTwice = new BiPredicate() { @Override public boolean test(Integer t1, Throwable t2) { @@ -223,7 +224,7 @@ public void accept(Integer n) { assertEquals(1, count.get()); } - @Test(timeout = 10000) + @Test public void unsubscribeAfterError() { Observer observer = TestHelper.mockObserver(); @@ -249,7 +250,7 @@ public void unsubscribeAfterError() { assertEquals("Only 1 active subscription", 1, so.maxActive.get()); } - @Test(timeout = 10000) + @Test public void timeoutWithRetry() { Observer observer = TestHelper.mockObserver(); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableSampleTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableSampleTest.java index 7afb249825..f2031bce02 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableSampleTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableSampleTest.java @@ -29,7 +29,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.TestHelper; -public class ObservableSampleTest { +public class ObservableSampleTest extends RxJavaTest { private TestScheduler scheduler; private Scheduler.Worker innerScheduler; private Observer observer; diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableScalarXMapTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableScalarXMapTest.java index 0b78c48339..da74a3d2d6 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableScalarXMapTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableScalarXMapTest.java @@ -25,7 +25,7 @@ import io.reactivex.observers.TestObserver; import io.reactivex.testsupport.TestHelper; -public class ObservableScalarXMapTest { +public class ObservableScalarXMapTest extends RxJavaTest { @Test public void utilityClass() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableScanTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableScanTest.java index 521b872e40..c87fd21f51 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableScanTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableScanTest.java @@ -20,6 +20,7 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.atomic.AtomicInteger; +import io.reactivex.RxJavaTest; import org.junit.Test; import io.reactivex.Observable; @@ -33,7 +34,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.*; -public class ObservableScanTest { +public class ObservableScanTest extends RxJavaTest { @Test public void scanIntegersWithInitialValue() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableSequenceEqualTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableSequenceEqualTest.java index 1369c08314..cb5f6d0554 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableSequenceEqualTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableSequenceEqualTest.java @@ -25,7 +25,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.TestHelper; -public class ObservableSequenceEqualTest { +public class ObservableSequenceEqualTest extends RxJavaTest { @Test public void observable1() { @@ -102,22 +102,6 @@ public void withEmpty3Observable() { verifyResult(o, true); } - @Test - @Ignore("Null values not allowed") - public void withNull1Observable() { - Observable o = Observable.sequenceEqual( - Observable.just((String) null), Observable.just("one")).toObservable(); - verifyResult(o, false); - } - - @Test - @Ignore("Null values not allowed") - public void withNull2Observable() { - Observable o = Observable.sequenceEqual( - Observable.just((String) null), Observable.just((String) null)).toObservable(); - verifyResult(o, true); - } - @Test public void withEqualityErrorObservable() { Observable o = Observable.sequenceEqual( @@ -247,22 +231,6 @@ public void withEmpty3() { verifyResult(o, true); } - @Test - @Ignore("Null values not allowed") - public void withNull1() { - Single o = Observable.sequenceEqual( - Observable.just((String) null), Observable.just("one")); - verifyResult(o, false); - } - - @Test - @Ignore("Null values not allowed") - public void withNull2() { - Single o = Observable.sequenceEqual( - Observable.just((String) null), Observable.just((String) null)); - verifyResult(o, true); - } - @Test public void withEqualityError() { Single o = Observable.sequenceEqual( diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableSerializeTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableSerializeTest.java index 5482568b62..66a9349995 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableSerializeTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableSerializeTest.java @@ -26,7 +26,7 @@ import io.reactivex.observers.DefaultObserver; import io.reactivex.testsupport.TestHelper; -public class ObservableSerializeTest { +public class ObservableSerializeTest extends RxJavaTest { Observer observer; diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableSingleTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableSingleTest.java index 797f0e2faa..770cfa8910 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableSingleTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableSingleTest.java @@ -28,7 +28,7 @@ import io.reactivex.plugins.RxJavaPlugins; import io.reactivex.testsupport.TestHelper; -public class ObservableSingleTest { +public class ObservableSingleTest extends RxJavaTest { @Test public void singleObservable() { @@ -234,7 +234,7 @@ public boolean test(Integer t1) { inOrder.verifyNoMoreInteractions(); } - @Test(timeout = 30000) + @Test public void issue1527Observable() throws InterruptedException { //https://github.com/ReactiveX/RxJava/pull/1527 Observable source = Observable.just(1, 2, 3, 4, 5, 6); @@ -447,7 +447,7 @@ public boolean test(Integer t1) { inOrder.verifyNoMoreInteractions(); } - @Test(timeout = 30000) + @Test public void issue1527() throws InterruptedException { //https://github.com/ReactiveX/RxJava/pull/1527 Observable source = Observable.just(1, 2, 3, 4, 5, 6); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableSkipLastTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableSkipLastTest.java index 6b7e4f45b7..6effa05218 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableSkipLastTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableSkipLastTest.java @@ -29,7 +29,7 @@ import io.reactivex.schedulers.Schedulers; import io.reactivex.testsupport.TestHelper; -public class ObservableSkipLastTest { +public class ObservableSkipLastTest extends RxJavaTest { @Test public void skipLastEmpty() { @@ -80,20 +80,6 @@ public void skipLastWithZeroCount() { verify(observer, times(1)).onComplete(); } - @Test - @Ignore("Null values not allowed") - public void skipLastWithNull() { - Observable o = Observable.fromIterable(Arrays.asList("one", null, "two")).skipLast(1); - - Observer observer = TestHelper.mockObserver(); - o.subscribe(observer); - verify(observer, times(1)).onNext("one"); - verify(observer, times(1)).onNext(null); - verify(observer, never()).onNext("two"); - verify(observer, never()).onError(any(Throwable.class)); - verify(observer, times(1)).onComplete(); - } - @Test public void skipLastWithBackpressure() { Observable o = Observable.range(0, Flowable.bufferSize() * 2).skipLast(Flowable.bufferSize() + 10); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableSkipLastTimedTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableSkipLastTimedTest.java index 8153f34b57..453b50136d 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableSkipLastTimedTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableSkipLastTimedTest.java @@ -28,7 +28,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.TestHelper; -public class ObservableSkipLastTimedTest { +public class ObservableSkipLastTimedTest extends RxJavaTest { @Test public void skipLastTimed() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableSkipTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableSkipTest.java index 0f4b2c0033..c87cdd3e94 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableSkipTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableSkipTest.java @@ -24,7 +24,7 @@ import io.reactivex.functions.Function; import io.reactivex.testsupport.*; -public class ObservableSkipTest { +public class ObservableSkipTest extends RxJavaTest { @Test public void skipNegativeElements() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableSkipTimedTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableSkipTimedTest.java index fc98a06147..41497a9ede 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableSkipTimedTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableSkipTimedTest.java @@ -26,7 +26,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.TestHelper; -public class ObservableSkipTimedTest { +public class ObservableSkipTimedTest extends RxJavaTest { @Test public void skipTimed() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableSkipUntilTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableSkipUntilTest.java index d5dbd3a51f..b4e3697631 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableSkipUntilTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableSkipUntilTest.java @@ -22,7 +22,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.TestHelper; -public class ObservableSkipUntilTest { +public class ObservableSkipUntilTest extends RxJavaTest { Observer observer; @Before diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableSkipWhileTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableSkipWhileTest.java index 42f99553b3..ed94331d01 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableSkipWhileTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableSkipWhileTest.java @@ -25,7 +25,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.TestHelper; -public class ObservableSkipWhileTest { +public class ObservableSkipWhileTest extends RxJavaTest { Observer w = TestHelper.mockObserver(); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableSubscribeOnTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableSubscribeOnTest.java index 539039afd4..559d8a00f1 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableSubscribeOnTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableSubscribeOnTest.java @@ -27,9 +27,9 @@ import io.reactivex.schedulers.*; import io.reactivex.testsupport.*; -public class ObservableSubscribeOnTest { +public class ObservableSubscribeOnTest extends RxJavaTest { - @Test(timeout = 2000) + @Test public void issue813() throws InterruptedException { // https://github.com/ReactiveX/RxJava/issues/813 final CountDownLatch scheduled = new CountDownLatch(1); @@ -72,22 +72,6 @@ public void subscribe( to.assertComplete(); } - @Test - @Ignore("ObservableSource.subscribe can't throw") - public void thrownErrorHandling() { - TestObserverEx to = new TestObserverEx(); - Observable.unsafeCreate(new ObservableSource() { - - @Override - public void subscribe(Observer observer) { - throw new RuntimeException("fail"); - } - - }).subscribeOn(Schedulers.computation()).subscribe(to); - to.awaitDone(1000, TimeUnit.MILLISECONDS); - to.assertTerminated(); - } - @Test public void onError() { TestObserverEx to = new TestObserverEx(); @@ -161,7 +145,7 @@ public Disposable schedule(@NonNull final Runnable action, final long delayTime, } - @Test(timeout = 5000) + @Test public void unsubscribeInfiniteStream() throws InterruptedException { TestObserver to = new TestObserver(); final AtomicInteger count = new AtomicInteger(); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableSwitchIfEmptyTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableSwitchIfEmptyTest.java index 39c6f2d6a0..fd9c25a2b1 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableSwitchIfEmptyTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableSwitchIfEmptyTest.java @@ -25,7 +25,7 @@ import io.reactivex.functions.Consumer; import io.reactivex.observers.DefaultObserver; -public class ObservableSwitchIfEmptyTest { +public class ObservableSwitchIfEmptyTest extends RxJavaTest { @Test public void switchWhenNotEmpty() throws Exception { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableSwitchTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableSwitchTest.java index 84b7d28702..b947f49915 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableSwitchTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableSwitchTest.java @@ -37,7 +37,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.*; -public class ObservableSwitchTest { +public class ObservableSwitchTest extends RxJavaTest { private TestScheduler scheduler; private Scheduler.Worker innerScheduler; diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeLastOneTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeLastOneTest.java index 082752d447..bbe15ded49 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeLastOneTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeLastOneTest.java @@ -24,7 +24,7 @@ import io.reactivex.functions.*; import io.reactivex.testsupport.*; -public class ObservableTakeLastOneTest { +public class ObservableTakeLastOneTest extends RxJavaTest { @Test public void lastOfManyReturnsLast() { @@ -33,8 +33,6 @@ public void lastOfManyReturnsLast() { to.assertValue(10); to.assertNoErrors(); to.assertTerminated(); - // NO longer assertable -// s.assertUnsubscribed(); } @Test @@ -44,8 +42,6 @@ public void lastOfEmptyReturnsEmpty() { to.assertNoValues(); to.assertNoErrors(); to.assertTerminated(); - // NO longer assertable -// s.assertUnsubscribed(); } @Test @@ -55,8 +51,6 @@ public void lastOfOneReturnsLast() { to.assertValue(1); to.assertNoErrors(); to.assertTerminated(); - // NO longer assertable -// s.assertUnsubscribed(); } @Test diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeLastTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeLastTest.java index 0b79bdb05c..9f9c642fc8 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeLastTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeLastTest.java @@ -29,7 +29,7 @@ import io.reactivex.schedulers.Schedulers; import io.reactivex.testsupport.TestHelper; -public class ObservableTakeLastTest { +public class ObservableTakeLastTest extends RxJavaTest { @Test public void takeLastEmpty() { @@ -82,21 +82,6 @@ public void takeLastWithZeroCount() { verify(observer, times(1)).onComplete(); } - @Test - @Ignore("Null values no longer allowed") - public void takeLastWithNull() { - Observable w = Observable.just("one", null, "three"); - Observable take = w.takeLast(2); - - Observer observer = TestHelper.mockObserver(); - take.subscribe(observer); - verify(observer, never()).onNext("one"); - verify(observer, times(1)).onNext(null); - verify(observer, times(1)).onNext("three"); - verify(observer, never()).onError(any(Throwable.class)); - verify(observer, times(1)).onComplete(); - } - @Test(expected = IndexOutOfBoundsException.class) public void takeLastWithNegativeCount() { Observable.just("one").takeLast(-1); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeLastTimedTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeLastTimedTest.java index 3ed7f68a94..08afe08308 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeLastTimedTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeLastTimedTest.java @@ -27,7 +27,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.TestHelper; -public class ObservableTakeLastTimedTest { +public class ObservableTakeLastTimedTest extends RxJavaTest { @Test(expected = IndexOutOfBoundsException.class) public void takeLastTimedWithNegativeCount() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeTest.java index 27bc8d96e6..4918d65d0f 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeTest.java @@ -20,6 +20,7 @@ import java.util.concurrent.*; import java.util.concurrent.atomic.*; +import io.reactivex.RxJavaTest; import org.junit.*; import org.mockito.InOrder; @@ -35,7 +36,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.TestHelper; -public class ObservableTakeTest { +public class ObservableTakeTest extends RxJavaTest { @Test public void take1() { @@ -132,33 +133,6 @@ public void subscribe(Observer observer) { verifyNoMoreInteractions(observer); } - @Test - @Ignore("take(0) is now empty() and doesn't even subscribe to the original source") - public void takeZeroDoesntLeakError() { - final AtomicBoolean subscribed = new AtomicBoolean(false); - final Disposable bs = Disposables.empty(); - Observable source = Observable.unsafeCreate(new ObservableSource() { - @Override - public void subscribe(Observer observer) { - subscribed.set(true); - observer.onSubscribe(bs); - observer.onError(new Throwable("test failed")); - } - }); - - Observer observer = TestHelper.mockObserver(); - - source.take(0).subscribe(observer); - assertTrue("source subscribed", subscribed.get()); - assertTrue("source unsubscribed", bs.isDisposed()); - - verify(observer, never()).onNext(anyString()); - // even though onError is called we take(0) so shouldn't see it - verify(observer, never()).onError(any(Throwable.class)); - verify(observer, times(1)).onComplete(); - verifyNoMoreInteractions(observer); - } - @Test public void unsubscribeAfterTake() { TestObservableFunc f = new TestObservableFunc("one", "two", "three"); @@ -183,12 +157,10 @@ public void unsubscribeAfterTake() { verify(observer, never()).onNext("two"); verify(observer, never()).onNext("three"); verify(observer, times(1)).onComplete(); - // FIXME no longer assertable -// verify(s, times(1)).unsubscribe(); verifyNoMoreInteractions(observer); } - @Test(timeout = 2000) + @Test public void unsubscribeFromSynchronousInfiniteObservable() { final AtomicLong count = new AtomicLong(); INFINITE_OBSERVABLE.take(10).subscribe(new Consumer() { @@ -202,7 +174,7 @@ public void accept(Long l) { assertEquals(10, count.get()); } - @Test(timeout = 2000) + @Test public void multiTake() { final AtomicInteger count = new AtomicInteger(); Observable.unsafeCreate(new ObservableSource() { @@ -282,7 +254,7 @@ public void subscribe(Observer op) { }); - @Test(timeout = 2000) + @Test public void takeObserveOn() { Observer o = TestHelper.mockObserver(); TestObserver to = new TestObserver(o); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeTimedTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeTimedTest.java index 5357fea431..6c96008263 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeTimedTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeTimedTest.java @@ -26,7 +26,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.TestHelper; -public class ObservableTakeTimedTest { +public class ObservableTakeTimedTest extends RxJavaTest { @Test public void takeTimed() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeUntilPredicateTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeUntilPredicateTest.java index 4915842332..ed12245544 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeUntilPredicateTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeUntilPredicateTest.java @@ -29,7 +29,7 @@ import io.reactivex.testsupport.*; ; -public class ObservableTakeUntilPredicateTest { +public class ObservableTakeUntilPredicateTest extends RxJavaTest { @Test public void takeEmpty() { Observer o = TestHelper.mockObserver(); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeUntilTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeUntilTest.java index 273927fc98..314d5b7521 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeUntilTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeUntilTest.java @@ -26,7 +26,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.*; -public class ObservableTakeUntilTest { +public class ObservableTakeUntilTest extends RxJavaTest { @Test public void takeUntil() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeWhileTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeWhileTest.java index 1ae0d1a475..e946b35713 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeWhileTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableTakeWhileTest.java @@ -27,7 +27,7 @@ import io.reactivex.subjects.*; import io.reactivex.testsupport.*; -public class ObservableTakeWhileTest { +public class ObservableTakeWhileTest extends RxJavaTest { @Test public void takeWhile1() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableThrottleFirstTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableThrottleFirstTest.java index 499a0f1b05..e322804b30 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableThrottleFirstTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableThrottleFirstTest.java @@ -29,7 +29,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.TestHelper; -public class ObservableThrottleFirstTest { +public class ObservableThrottleFirstTest extends RxJavaTest { private TestScheduler scheduler; private Scheduler.Worker innerScheduler; diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableThrottleLatestTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableThrottleLatestTest.java index e426af5752..3b9d9e4d64 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableThrottleLatestTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableThrottleLatestTest.java @@ -27,7 +27,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.TestHelper; -public class ObservableThrottleLatestTest { +public class ObservableThrottleLatestTest extends RxJavaTest { @Test public void just() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableTimeIntervalTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableTimeIntervalTest.java index 09981056cf..958317eb81 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableTimeIntervalTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableTimeIntervalTest.java @@ -28,7 +28,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.TestHelper; -public class ObservableTimeIntervalTest { +public class ObservableTimeIntervalTest extends RxJavaTest { private static final TimeUnit TIME_UNIT = TimeUnit.MILLISECONDS; diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableTimeoutTests.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableTimeoutTests.java index ebb48b3560..499e92726f 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableTimeoutTests.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableTimeoutTests.java @@ -33,7 +33,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.*; -public class ObservableTimeoutTests { +public class ObservableTimeoutTests extends RxJavaTest { private PublishSubject underlyingSubject; private TestScheduler testScheduler; private Observable withTimeout; @@ -290,68 +290,6 @@ public void subscribe(Observer observer) { verify(upstream, times(1)).dispose(); } - @Test - @Ignore("s should be considered cancelled upon executing onComplete and not expect downstream to call cancel") - public void shouldUnsubscribeFromUnderlyingSubscriptionOnImmediatelyComplete() { - // From https://github.com/ReactiveX/RxJava/pull/951 - final Disposable upstream = mock(Disposable.class); - - Observable immediatelyComplete = Observable.unsafeCreate(new ObservableSource() { - @Override - public void subscribe(Observer observer) { - observer.onSubscribe(upstream); - observer.onComplete(); - } - }); - - TestScheduler testScheduler = new TestScheduler(); - Observable observableWithTimeout = immediatelyComplete.timeout(1000, TimeUnit.MILLISECONDS, - testScheduler); - - Observer observer = TestHelper.mockObserver(); - TestObserver to = new TestObserver(observer); - observableWithTimeout.subscribe(to); - - testScheduler.advanceTimeBy(2000, TimeUnit.MILLISECONDS); - - InOrder inOrder = inOrder(observer); - inOrder.verify(observer).onComplete(); - inOrder.verifyNoMoreInteractions(); - - verify(upstream, times(1)).dispose(); - } - - @Test - @Ignore("s should be considered cancelled upon executing onError and not expect downstream to call cancel") - public void shouldUnsubscribeFromUnderlyingSubscriptionOnImmediatelyErrored() throws InterruptedException { - // From https://github.com/ReactiveX/RxJava/pull/951 - final Disposable upstream = mock(Disposable.class); - - Observable immediatelyError = Observable.unsafeCreate(new ObservableSource() { - @Override - public void subscribe(Observer observer) { - observer.onSubscribe(upstream); - observer.onError(new IOException("Error")); - } - }); - - TestScheduler testScheduler = new TestScheduler(); - Observable observableWithTimeout = immediatelyError.timeout(1000, TimeUnit.MILLISECONDS, - testScheduler); - - Observer observer = TestHelper.mockObserver(); - TestObserver to = new TestObserver(observer); - observableWithTimeout.subscribe(to); - - testScheduler.advanceTimeBy(2000, TimeUnit.MILLISECONDS); - - InOrder inOrder = inOrder(observer); - inOrder.verify(observer).onError(isA(IOException.class)); - inOrder.verifyNoMoreInteractions(); - - verify(upstream, times(1)).dispose(); - } - @Test public void shouldUnsubscribeFromUnderlyingSubscriptionOnDispose() { final PublishSubject subject = PublishSubject.create(); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableTimeoutWithSelectorTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableTimeoutWithSelectorTest.java index be91913cbf..588d641c0e 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableTimeoutWithSelectorTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableTimeoutWithSelectorTest.java @@ -20,6 +20,7 @@ import java.util.concurrent.*; import java.util.concurrent.atomic.*; +import io.reactivex.RxJavaTest; import org.junit.Test; import org.mockito.InOrder; import org.mockito.invocation.InvocationOnMock; @@ -38,8 +39,8 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.*; -public class ObservableTimeoutWithSelectorTest { - @Test(timeout = 2000) +public class ObservableTimeoutWithSelectorTest extends RxJavaTest { + @Test public void timeoutSelectorNormal1() { PublishSubject source = PublishSubject.create(); final PublishSubject timeout = PublishSubject.create(); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableTimerTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableTimerTest.java index 7ef67a565b..5b21b2b172 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableTimerTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableTimerTest.java @@ -34,7 +34,7 @@ import io.reactivex.schedulers.*; import io.reactivex.testsupport.TestHelper; -public class ObservableTimerTest { +public class ObservableTimerTest extends RxJavaTest { @Mock Observer observer; @Mock diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableTimestampTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableTimestampTest.java index 4041ec9bfc..9bd5a023ae 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableTimestampTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableTimestampTest.java @@ -27,7 +27,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.TestHelper; -public class ObservableTimestampTest { +public class ObservableTimestampTest extends RxJavaTest { Observer observer; @Before diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableToFutureTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableToFutureTest.java index b8e1ea416b..377bdc7754 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableToFutureTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableToFutureTest.java @@ -25,7 +25,7 @@ import io.reactivex.schedulers.*; import io.reactivex.testsupport.TestHelper; -public class ObservableToFutureTest { +public class ObservableToFutureTest extends RxJavaTest { @Test public void success() throws Exception { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableToListTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableToListTest.java index 36cf645e6c..0ece2b15dc 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableToListTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableToListTest.java @@ -28,7 +28,7 @@ import io.reactivex.functions.*; import io.reactivex.testsupport.TestHelper; -public class ObservableToListTest { +public class ObservableToListTest extends RxJavaTest { @Test public void listObservable() { @@ -76,19 +76,6 @@ public void listMultipleSubscribersObservable() { verify(o2, times(1)).onComplete(); } - @Test - @Ignore("Null values are not allowed") - public void listWithNullValueObservable() { - Observable w = Observable.fromIterable(Arrays.asList("one", null, "three")); - Observable> observable = w.toList().toObservable(); - - Observer> observer = TestHelper.mockObserver(); - observable.subscribe(observer); - verify(observer, times(1)).onNext(Arrays.asList("one", null, "three")); - verify(observer, Mockito.never()).onError(any(Throwable.class)); - verify(observer, times(1)).onComplete(); - } - @Test public void listWithBlockingFirstObservable() { Observable o = Observable.fromIterable(Arrays.asList("one", "two", "three")); @@ -148,18 +135,6 @@ public void listMultipleSubscribers() { verify(o2, Mockito.never()).onError(any(Throwable.class)); } - @Test - @Ignore("Null values are not allowed") - public void listWithNullValue() { - Observable w = Observable.fromIterable(Arrays.asList("one", null, "three")); - Single> single = w.toList(); - - SingleObserver> observer = TestHelper.mockSingleObserver(); - single.subscribe(observer); - verify(observer, times(1)).onSuccess(Arrays.asList("one", null, "three")); - verify(observer, Mockito.never()).onError(any(Throwable.class)); - } - @Test public void listWithBlockingFirst() { Observable o = Observable.fromIterable(Arrays.asList("one", "two", "three")); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableToMapTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableToMapTest.java index 55e02e38db..4dcaa520aa 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableToMapTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableToMapTest.java @@ -25,7 +25,7 @@ import io.reactivex.functions.*; import io.reactivex.testsupport.TestHelper; -public class ObservableToMapTest { +public class ObservableToMapTest extends RxJavaTest { Observer objectObserver; SingleObserver singleObserver; diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableToMultimapTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableToMultimapTest.java index c4167d9e69..7a63a0a570 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableToMultimapTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableToMultimapTest.java @@ -25,7 +25,7 @@ import io.reactivex.functions.*; import io.reactivex.testsupport.TestHelper; -public class ObservableToMultimapTest { +public class ObservableToMultimapTest extends RxJavaTest { Observer objectObserver; SingleObserver singleObserver; diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableToSortedListTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableToSortedListTest.java index a3d427ce75..39b3ceacf2 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableToSortedListTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableToSortedListTest.java @@ -27,7 +27,7 @@ import io.reactivex.Observer; import io.reactivex.testsupport.TestHelper; -public class ObservableToSortedListTest { +public class ObservableToSortedListTest extends RxJavaTest { @Test public void sortedListObservable() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableToXTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableToXTest.java index 0feefd0046..dc1b522f84 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableToXTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableToXTest.java @@ -19,7 +19,7 @@ import io.reactivex.*; import io.reactivex.subscribers.TestSubscriber; -public class ObservableToXTest { +public class ObservableToXTest extends RxJavaTest { @Test public void toFlowableBuffer() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableUnsubscribeOnTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableUnsubscribeOnTest.java index 5c0c2a6ba1..677559eb8c 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableUnsubscribeOnTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableUnsubscribeOnTest.java @@ -30,9 +30,9 @@ import io.reactivex.schedulers.Schedulers; import io.reactivex.testsupport.*; -public class ObservableUnsubscribeOnTest { +public class ObservableUnsubscribeOnTest extends RxJavaTest { - @Test(timeout = 5000) + @Test public void unsubscribeWhenSubscribeOnAndUnsubscribeOnAreOnSameThread() throws InterruptedException { UIEventLoopScheduler uiEventLoop = new UIEventLoopScheduler(); try { @@ -82,7 +82,7 @@ public void subscribe(Observer t1) { } } - @Test(timeout = 5000) + @Test public void unsubscribeWhenSubscribeOnAndUnsubscribeOnAreOnDifferentThreads() throws InterruptedException { UIEventLoopScheduler uiEventLoop = new UIEventLoopScheduler(); try { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableUsingTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableUsingTest.java index 4ef2828844..047bc80ce4 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableUsingTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableUsingTest.java @@ -18,6 +18,7 @@ import java.util.*; +import io.reactivex.RxJavaTest; import org.junit.*; import org.mockito.InOrder; @@ -32,7 +33,7 @@ import io.reactivex.plugins.RxJavaPlugins; import io.reactivex.testsupport.*; -public class ObservableUsingTest { +public class ObservableUsingTest extends RxJavaTest { interface Resource { String getTextFromWeb(); @@ -230,52 +231,6 @@ public Observable apply(Disposable subscription) { } } - @Test - @Ignore("subscribe() can't throw") - public void usingWithObservableFactoryErrorInOnSubscribe() { - performTestUsingWithObservableFactoryErrorInOnSubscribe(false); - } - - @Test - @Ignore("subscribe() can't throw") - public void usingWithObservableFactoryErrorInOnSubscribeDisposeEagerly() { - performTestUsingWithObservableFactoryErrorInOnSubscribe(true); - } - - private void performTestUsingWithObservableFactoryErrorInOnSubscribe(boolean disposeEagerly) { - final Runnable unsubscribe = mock(Runnable.class); - Supplier resourceFactory = new Supplier() { - @Override - public Disposable get() { - return Disposables.fromRunnable(unsubscribe); - } - }; - - Function> observableFactory = new Function>() { - @Override - public Observable apply(Disposable subscription) { - return Observable.unsafeCreate(new ObservableSource() { - @Override - public void subscribe(Observer t1) { - throw new TestException(); - } - }); - } - }; - - try { - Observable - .using(resourceFactory, observableFactory, disposeSubscription, disposeEagerly) - .blockingLast(); - - fail("Should throw a TestException when the observableFactory throws it"); - } catch (TestException e) { - // Make sure that unsubscribe is called so that users can close - // the resource if some error happens. - verify(unsubscribe, times(1)).run(); - } - } - @Test public void usingDisposesEagerlyBeforeCompletion() { final List events = new ArrayList(); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableWindowWithObservableTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableWindowWithObservableTest.java index f65de1152b..63f8df8db2 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableWindowWithObservableTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableWindowWithObservableTest.java @@ -20,6 +20,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.*; +import io.reactivex.RxJavaTest; import org.junit.Test; import io.reactivex.Observable; @@ -34,7 +35,7 @@ import io.reactivex.subjects.*; import io.reactivex.testsupport.*; -public class ObservableWindowWithObservableTest { +public class ObservableWindowWithObservableTest extends RxJavaTest { @Test public void windowViaObservableNormal1() { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableWindowWithSizeTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableWindowWithSizeTest.java index 752ec7f613..c0256de77b 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableWindowWithSizeTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableWindowWithSizeTest.java @@ -19,6 +19,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; +import io.reactivex.RxJavaTest; import org.junit.Test; import io.reactivex.Observable; @@ -32,7 +33,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.*; -public class ObservableWindowWithSizeTest { +public class ObservableWindowWithSizeTest extends RxJavaTest { private static List> toLists(Observable> observables) { diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableWindowWithStartEndObservableTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableWindowWithStartEndObservableTest.java index 152bebf4ff..bbcadea710 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableWindowWithStartEndObservableTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableWindowWithStartEndObservableTest.java @@ -34,7 +34,7 @@ import io.reactivex.subjects.*; import io.reactivex.testsupport.TestHelper; -public class ObservableWindowWithStartEndObservableTest { +public class ObservableWindowWithStartEndObservableTest extends RxJavaTest { private TestScheduler scheduler; private Scheduler.Worker innerScheduler; diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableWindowWithTimeTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableWindowWithTimeTest.java index 80a906cd9a..f7fe5bd1c2 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableWindowWithTimeTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableWindowWithTimeTest.java @@ -33,7 +33,7 @@ import io.reactivex.subjects.*; import io.reactivex.testsupport.TestHelper; -public class ObservableWindowWithTimeTest { +public class ObservableWindowWithTimeTest extends RxJavaTest { private TestScheduler scheduler; private Scheduler.Worker innerScheduler; diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableWithLatestFromTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableWithLatestFromTest.java index d237b0426e..6b0999d8ad 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableWithLatestFromTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableWithLatestFromTest.java @@ -18,6 +18,7 @@ import java.util.*; +import io.reactivex.RxJavaTest; import org.junit.*; import org.mockito.InOrder; @@ -33,7 +34,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.*; -public class ObservableWithLatestFromTest { +public class ObservableWithLatestFromTest extends RxJavaTest { static final BiFunction COMBINER = new BiFunction() { @Override public Integer apply(Integer t1, Integer t2) { @@ -393,63 +394,6 @@ public void manySourcesIterableSweep() { } } - @Test - @Ignore("Observable doesn't support backpressure") - public void backpressureNoSignal() { -// PublishSubject ps1 = PublishSubject.create(); -// PublishSubject ps2 = PublishSubject.create(); -// -// TestObserver to = new TestObserver(); -// -// Observable.range(1, 10).withLatestFrom(new Observable[] { ps1, ps2 }, toArray) -// .subscribe(to); -// -// to.assertNoValues(); -// -// to.request(1); -// -// to.assertNoValues(); -// to.assertNoErrors(); -// to.assertComplete(); -// -// assertFalse("ps1 has subscribers?", ps1.hasSubscribers()); -// assertFalse("ps2 has subscribers?", ps2.hasSubscribers()); - } - - @Test - @Ignore("Observable doesn't support backpressure") - public void backpressureWithSignal() { -// PublishSubject ps1 = PublishSubject.create(); -// PublishSubject ps2 = PublishSubject.create(); -// -// TestObserver to = new TestObserver(); -// -// Observable.range(1, 3).withLatestFrom(new Observable[] { ps1, ps2 }, toArray) -// .subscribe(ts); -// -// to.assertNoValues(); -// -// ps1.onNext("1"); -// ps2.onNext("1"); -// -// to.request(1); -// -// to.assertValue("[1, 1, 1]"); -// -// to.request(1); -// -// to.assertValues("[1, 1, 1]", "[2, 1, 1]"); -// -// to.request(1); -// -// to.assertValues("[1, 1, 1]", "[2, 1, 1]", "[3, 1, 1]"); -// to.assertNoErrors(); -// to.assertComplete(); -// -// assertFalse("ps1 has subscribers?", ps1.hasSubscribers()); -// assertFalse("ps2 has subscribers?", ps2.hasSubscribers()); - } - @Test public void withEmpty() { TestObserver to = new TestObserver(); diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableZipCompletionTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableZipCompletionTest.java index b7d6d5839c..038fc35598 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableZipCompletionTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableZipCompletionTest.java @@ -28,7 +28,7 @@ * the resulting Observable is finite. * */ -public class ObservableZipCompletionTest { +public class ObservableZipCompletionTest extends RxJavaTest { BiFunction concat2Strings; PublishSubject s1; diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableZipIterableTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableZipIterableTest.java index 3f80de9ae0..45cf02a6d3 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableZipIterableTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableZipIterableTest.java @@ -33,7 +33,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.TestHelper; -public class ObservableZipIterableTest { +public class ObservableZipIterableTest extends RxJavaTest { BiFunction concat2Strings; PublishSubject s1; PublishSubject s2; diff --git a/src/test/java/io/reactivex/internal/operators/observable/ObservableZipTest.java b/src/test/java/io/reactivex/internal/operators/observable/ObservableZipTest.java index 6cda8150cf..65443ba223 100644 --- a/src/test/java/io/reactivex/internal/operators/observable/ObservableZipTest.java +++ b/src/test/java/io/reactivex/internal/operators/observable/ObservableZipTest.java @@ -35,7 +35,7 @@ import io.reactivex.subjects.PublishSubject; import io.reactivex.testsupport.TestHelper; -public class ObservableZipTest { +public class ObservableZipTest extends RxJavaTest { BiFunction concat2Strings; PublishSubject s1; PublishSubject s2; @@ -851,36 +851,6 @@ public void onNext(String s) { assertEquals("5-5", list.get(4)); } - @Test - @Ignore("Null values not allowed") - public void emitNull() { - Observable oi = Observable.just(1, null, 3); - Observable os = Observable.just("a", "b", null); - Observable o = Observable.zip(oi, os, new BiFunction() { - - @Override - public String apply(Integer t1, String t2) { - return t1 + "-" + t2; - } - - }); - - final ArrayList list = new ArrayList(); - o.subscribe(new Consumer() { - - @Override - public void accept(String s) { - System.out.println(s); - list.add(s); - } - }); - - assertEquals(3, list.size()); - assertEquals("1-a", list.get(0)); - assertEquals("null-b", list.get(1)); - assertEquals("3-null", list.get(2)); - } - @SuppressWarnings("rawtypes") static String kind(Notification notification) { if (notification.isOnError()) { @@ -1099,7 +1069,7 @@ public void run() { }); } - @Test(timeout = 30000) + @Test public void issue1812() { // https://github.com/ReactiveX/RxJava/issues/1812 Observable zip1 = Observable.zip(Observable.range(0, 1026), Observable.range(0, 1026), @@ -1125,7 +1095,7 @@ public Integer apply(Integer i1, Integer i2) { assertEquals(expected, zip2.toList().blockingGet()); } - @Test(timeout = 10000) + @Test public void zipRace() { long startTime = System.currentTimeMillis(); Observable src = Observable.just(1).subscribeOn(Schedulers.computation());