@Test public void once() { NonoProcessor ms = NonoProcessor.create(); TestSubscriber<Void> ts = ms.test(); ms.onComplete(); List<Throwable> errors = TestHelper.trackPluginErrors(); try { ms.onError(new IOException()); TestHelper.assertUndeliverable(errors, 0, IOException.class); } finally { RxJavaPlugins.reset(); } ms.onComplete(); ts.assertResult(); }
@Test public void crossCancelComplete() { final TestSubscriber<Void> ts1 = new TestSubscriber<Void>(); TestSubscriber<Void> ts2 = new TestSubscriber<Void>() { @Override public void onComplete() { super.onComplete(); ts1.cancel(); } }; NonoProcessor np = NonoProcessor.create(); np.subscribe(ts2); np.subscribe(ts1); np.onComplete(); ts1.assertEmpty(); ts2.assertResult(); }
@Test public void onSubscribeDispose() { NonoProcessor ms = NonoProcessor.create(); BooleanSubscription bs = new BooleanSubscription(); ms.onSubscribe(bs); assertFalse(bs.isCancelled()); ms.onComplete(); bs = new BooleanSubscription(); ms.onSubscribe(bs); assertTrue(bs.isCancelled()); }
@Test public void complete() { NonoProcessor ms = NonoProcessor.create(); assertFalse(ms.hasComplete()); assertFalse(ms.hasThrowable()); assertNull(ms.getThrowable()); assertFalse(ms.hasSubscribers()); assertEquals(0, ms.subscriberCount()); TestSubscriber<Void> ts = ms.test(); ts.assertEmpty(); assertTrue(ms.hasSubscribers()); assertEquals(1, ms.subscriberCount()); ms.onComplete(); assertTrue(ms.hasComplete()); assertFalse(ms.hasThrowable()); assertNull(ms.getThrowable()); assertFalse(ms.hasSubscribers()); assertEquals(0, ms.subscriberCount()); ts.assertResult(); ms.test().assertResult(); assertTrue(ms.hasComplete()); assertFalse(ms.hasThrowable()); assertNull(ms.getThrowable()); assertFalse(ms.hasSubscribers()); assertEquals(0, ms.subscriberCount()); }