@Test public void methodTestNoCancel() { PublishSubject<Integer> ps = PublishSubject.create(); ps.test(false); assertTrue(ps.hasObservers()); }
@Test public void addRemoveRance() throws Exception { for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) { final PublishSubject<Integer> ps = PublishSubject.create(); final TestObserver<Integer> to = ps.test(); Runnable r1 = new Runnable() { @Override public void run() { ps.subscribe(); } }; Runnable r2 = new Runnable() { @Override public void run() { to.cancel(); } }; TestHelper.race(r1, r2); } }
@Test public void methodTestCancelled() { PublishSubject<Integer> ps = PublishSubject.create(); ps.test(true); assertFalse(ps.hasObservers()); }
@Test public void terminateRace() throws Exception { for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) { final PublishSubject<Integer> ps = PublishSubject.create(); TestObserver<Integer> to = ps.test(); Runnable task = new Runnable() { @Override public void run() { ps.onComplete(); } }; TestHelper.race(task, task); to .awaitDone(5, TimeUnit.SECONDS) .assertResult(); } }
@Test public void subscribedTo() { PublishSubject<Integer> ps = PublishSubject.create(); PublishSubject<Integer> ps2 = PublishSubject.create(); ps.subscribe(ps2); TestObserver<Integer> to = ps2.test(); ps.onNext(1); ps.onNext(2); ps.onComplete(); to.assertResult(1, 2); } }
@Test public void onSubscribeCancelsImmediately() { PublishSubject<Integer> ps = PublishSubject.create(); TestObserver<Integer> to = ps.test(); ps.subscribe(new Observer<Integer>() { @Override public void onSubscribe(Disposable d) { d.dispose(); d.dispose(); } @Override public void onNext(Integer t) { } @Override public void onError(Throwable t) { } @Override public void onComplete() { } }); to.cancel(); assertFalse(ps.hasObservers()); }