@Override public void run() { cs.onError(ex); } };
@Override public void run() { cs.onError(ex); } };
@Override public void run() { cs.onError(ex); } };
@Override public void run() { cs.onError(ex); } };
@Override public void run() { cs.onError(ex); } };
@Override public void run() { cs.onError(ex); } };
@Test public void nullThrowable() { CompletableSubject cs = CompletableSubject.create(); try { cs.onError(null); fail("No NullPointerException thrown"); } catch (NullPointerException ex) { assertEquals("onError called with null. Null values are generally not allowed in 2.x operators and sources.", ex.getMessage()); } cs.test().assertEmpty().cancel();; }
@Test public void once() { CompletableSubject cs = CompletableSubject.create(); TestObserver<Void> to = cs.test(); cs.onComplete(); List<Throwable> errors = TestHelper.trackPluginErrors(); try { cs.onError(new IOException()); TestHelper.assertUndeliverable(errors, 0, IOException.class); } finally { RxJavaPlugins.reset(); } cs.onComplete(); to.assertResult(); }
@Test public void mainCompletesinnerErrorDelayed() { final PublishProcessor<Integer> pp = PublishProcessor.create(); final CompletableSubject cs = CompletableSubject.create(); TestObserver<Void> to = pp.switchMapCompletableDelayError(Functions.justFunction(cs)).test(); pp.onNext(1); pp.onComplete(); to.assertEmpty(); cs.onError(new TestException()); to.assertFailure(TestException.class); }
@Test public void mainCompletesinnerErrorDelayed() { final PublishSubject<Integer> ps = PublishSubject.create(); final CompletableSubject cs = CompletableSubject.create(); TestObserver<Void> to = ps.switchMapCompletableDelayError(Functions.justFunction(cs)).test(); ps.onNext(1); ps.onComplete(); to.assertEmpty(); cs.onError(new TestException()); to.assertFailure(TestException.class); }
@Test public void innerErrorDelayed() { final PublishSubject<Integer> ps = PublishSubject.create(); final CompletableSubject cs = CompletableSubject.create(); TestObserver<Void> to = ps.switchMapCompletableDelayError(Functions.justFunction(cs)).test(); ps.onNext(1); cs.onError(new TestException()); to.assertEmpty(); assertTrue(ps.hasObservers()); ps.onComplete(); to.assertFailure(TestException.class); }
@Test public void innerErrorDelayed() { final PublishProcessor<Integer> pp = PublishProcessor.create(); final CompletableSubject cs = CompletableSubject.create(); TestObserver<Void> to = pp.switchMapCompletableDelayError(Functions.justFunction(cs)).test(); pp.onNext(1); cs.onError(new TestException()); to.assertEmpty(); assertTrue(pp.hasSubscribers()); pp.onComplete(); to.assertFailure(TestException.class); }
@Test public void untilCompletableOtherError() { CompletableSubject main = CompletableSubject.create(); CompletableSubject other = CompletableSubject.create(); TestObserver<Void> to = main.ambWith(other).test(); assertTrue("Main no observers?", main.hasObservers()); assertTrue("Other no observers?", other.hasObservers()); other.onError(new TestException()); assertFalse("Main has observers?", main.hasObservers()); assertFalse("Other has observers?", other.hasObservers()); to.assertFailure(TestException.class); }
@Test public void untilCompletableOtherError() { SingleSubject<Integer> main = SingleSubject.create(); CompletableSubject other = CompletableSubject.create(); TestObserver<Integer> to = main.takeUntil(other).test(); assertTrue("Main no observers?", main.hasObservers()); assertTrue("Other no observers?", other.hasObservers()); other.onError(new TestException()); assertFalse("Main has observers?", main.hasObservers()); assertFalse("Other has observers?", other.hasObservers()); to.assertFailure(TestException.class); }
@Test public void untilCompletableMainError() { CompletableSubject main = CompletableSubject.create(); CompletableSubject other = CompletableSubject.create(); TestObserver<Void> to = main.ambWith(other).test(); assertTrue("Main no observers?", main.hasObservers()); assertTrue("Other no observers?", other.hasObservers()); main.onError(new TestException()); assertFalse("Main has observers?", main.hasObservers()); assertFalse("Other has observers?", other.hasObservers()); to.assertFailure(TestException.class); }
@Test public void errorMain() { CompletableSubject cs = CompletableSubject.create(); PublishSubject<Integer> ps = PublishSubject.create(); TestObserver<Integer> to = cs.andThen(ps) .test(); assertTrue(cs.hasObservers()); assertFalse(ps.hasObservers()); cs.onError(new TestException()); assertFalse(cs.hasObservers()); assertFalse(ps.hasObservers()); to.assertFailure(TestException.class); }
@Test public void otherErrors() { CompletableSubject cs1 = CompletableSubject.create(); CompletableSubject cs2 = CompletableSubject.create(); TestObserver<Void> to = cs1.takeUntil(cs2).test(); to.assertEmpty(); assertTrue(cs1.hasObservers()); assertTrue(cs2.hasObservers()); cs2.onError(new TestException()); assertFalse(cs1.hasObservers()); assertFalse(cs2.hasObservers()); to.assertFailure(TestException.class); }
@Test public void mainErrors() { CompletableSubject cs1 = CompletableSubject.create(); CompletableSubject cs2 = CompletableSubject.create(); TestObserver<Void> to = cs1.takeUntil(cs2).test(); to.assertEmpty(); assertTrue(cs1.hasObservers()); assertTrue(cs2.hasObservers()); cs1.onError(new TestException()); assertFalse(cs1.hasObservers()); assertFalse(cs2.hasObservers()); to.assertFailure(TestException.class); }
@Test public void immediateError2() { PublishProcessor<Integer> pp = PublishProcessor.create(); CompletableSubject cs = CompletableSubject.create(); TestObserver<Void> to = pp.concatMapCompletable( Functions.justFunction(cs)).test(); to.assertEmpty(); assertTrue(pp.hasSubscribers()); assertFalse(cs.hasObservers()); pp.onNext(1); assertTrue(cs.hasObservers()); cs.onError(new TestException()); assertFalse(pp.hasSubscribers()); to.assertFailure(TestException.class); }
@Test public void innerError() { PublishProcessor<Integer> pp = PublishProcessor.create(); CompletableSubject cs = CompletableSubject.create(); TestObserver<Void> to = pp.switchMapCompletable(Functions.justFunction(cs)) .test(); assertTrue(pp.hasSubscribers()); assertFalse(cs.hasObservers()); pp.onNext(1); assertTrue(cs.hasObservers()); to.assertEmpty(); cs.onError(new TestException()); to.assertFailure(TestException.class); assertFalse(pp.hasSubscribers()); assertFalse(cs.hasObservers()); }