@SuppressWarnings("unchecked") @Test public void ambIterable2() { PerhapsProcessor<Integer> sp1 = PerhapsProcessor.create(); PerhapsProcessor<Integer> sp2 = PerhapsProcessor.create(); TestSubscriber<Integer> ts = Perhaps.amb(Arrays.asList(sp1, sp2)) .test(); assertTrue(sp1.hasSubscribers()); assertTrue(sp2.hasSubscribers()); ts.assertEmpty(); sp2.onNext(2); ts.assertResult(2); assertFalse(sp1.hasSubscribers()); assertFalse(sp2.hasSubscribers()); }
@SuppressWarnings("unchecked") @Test public void ambIterable1() { PerhapsProcessor<Integer> sp1 = PerhapsProcessor.create(); PerhapsProcessor<Integer> sp2 = PerhapsProcessor.create(); TestSubscriber<Integer> ts = Perhaps.amb(Arrays.asList(sp1, sp2)) .test(); assertTrue(sp1.hasSubscribers()); assertTrue(sp2.hasSubscribers()); ts.assertEmpty(); sp1.onNext(1); ts.assertResult(1); assertFalse(sp1.hasSubscribers()); assertFalse(sp2.hasSubscribers()); }
@Test public void delaySubscriptionScheduler() { PerhapsProcessor<Integer> sp = PerhapsProcessor.create(); TestScheduler scheduler = new TestScheduler(); TestSubscriber<Integer> ts = sp.delaySubscription(1, TimeUnit.SECONDS, scheduler) .test(); assertFalse(sp.hasSubscribers()); ts.assertEmpty(); scheduler.advanceTimeBy(1, TimeUnit.SECONDS); assertTrue(sp.hasSubscribers()); sp.onNext(1); ts.assertResult(1); assertFalse(sp.hasSubscribers()); }
@Test public void ambWith1() { PerhapsProcessor<Integer> sp1 = PerhapsProcessor.create(); PerhapsProcessor<Integer> sp2 = PerhapsProcessor.create(); TestSubscriber<Integer> ts = sp1.ambWith(sp2) .test(); assertTrue(sp1.hasSubscribers()); assertTrue(sp2.hasSubscribers()); ts.assertEmpty(); sp1.onNext(1); ts.assertResult(1); assertFalse(sp1.hasSubscribers()); assertFalse(sp2.hasSubscribers()); }
@Test public void ambWith2() { PerhapsProcessor<Integer> sp1 = PerhapsProcessor.create(); PerhapsProcessor<Integer> sp2 = PerhapsProcessor.create(); TestSubscriber<Integer> ts = sp1.ambWith(sp2) .test(); assertTrue(sp1.hasSubscribers()); assertTrue(sp2.hasSubscribers()); ts.assertEmpty(); sp2.onNext(2); ts.assertResult(2); assertFalse(sp1.hasSubscribers()); assertFalse(sp2.hasSubscribers()); }
@Test public void takeUnitHotSwitch() { PerhapsProcessor<Integer> sp1 = PerhapsProcessor.create(); PerhapsProcessor<Integer> sp2 = PerhapsProcessor.create(); TestSubscriber<Integer> ts = sp1.takeUntil(sp2) .test() .assertEmpty(); assertTrue(sp1.hasSubscribers()); assertTrue(sp2.hasSubscribers()); sp2.onNext(1); assertFalse(sp1.hasSubscribers()); assertFalse(sp2.hasSubscribers()); ts.assertResult(); }
@SuppressWarnings("unchecked") @Test public void ambArray1() { PerhapsProcessor<Integer> sp1 = PerhapsProcessor.create(); PerhapsProcessor<Integer> sp2 = PerhapsProcessor.create(); TestSubscriber<Integer> ts = Perhaps.ambArray(sp1, sp2) .test(); assertTrue(sp1.hasSubscribers()); assertTrue(sp2.hasSubscribers()); ts.assertEmpty(); sp1.onNext(1); ts.assertResult(1); assertFalse(sp1.hasSubscribers()); assertFalse(sp2.hasSubscribers()); }
@SuppressWarnings("unchecked") @Test public void ambArray2() { PerhapsProcessor<Integer> sp1 = PerhapsProcessor.create(); PerhapsProcessor<Integer> sp2 = PerhapsProcessor.create(); TestSubscriber<Integer> ts = Perhaps.ambArray(sp1, sp2) .test(); assertTrue(sp1.hasSubscribers()); assertTrue(sp2.hasSubscribers()); ts.assertEmpty(); sp2.onNext(2); ts.assertResult(2); assertFalse(sp1.hasSubscribers()); assertFalse(sp2.hasSubscribers()); }
@Test public void takeUnitHot() { PerhapsProcessor<Integer> sp1 = PerhapsProcessor.create(); PerhapsProcessor<Integer> sp2 = PerhapsProcessor.create(); TestSubscriber<Integer> ts = sp1.takeUntil(sp2) .test() .assertEmpty(); assertTrue(sp1.hasSubscribers()); assertTrue(sp2.hasSubscribers()); sp1.onNext(1); sp1.onComplete(); assertFalse(sp1.hasSubscribers()); assertFalse(sp2.hasSubscribers()); ts.assertResult(1); }
@Test public void delaySubscriptionPublisher() { PerhapsProcessor<Integer> sp = PerhapsProcessor.create(); PublishProcessor<Integer> pp = PublishProcessor.create(); TestSubscriber<Integer> ts = sp.delaySubscription(pp) .test(); assertFalse(sp.hasSubscribers()); assertTrue(pp.hasSubscribers()); ts.assertEmpty(); pp.onNext(1); assertTrue(sp.hasSubscribers()); assertFalse(pp.hasSubscribers()); sp.onNext(1); ts.assertResult(1); assertFalse(sp.hasSubscribers()); }