@Test public void testReplaySubjectConcurrentSubscriptions() throws InterruptedException { final ReplaySubject<Long> replay = ReplaySubject.createUnbounded(); Thread source = new Thread(new Runnable() {
@Test(timeout = 4000) public void testReplaySubjectConcurrentSubscribersDoingReplayDontBlockEachOther() throws InterruptedException { final ReplaySubject<Long> replay = ReplaySubject.createUnbounded(); Thread source = new Thread(new Runnable() {
@Test public void testGetValuesUnbounded() { ReplaySubject<Object> rs = ReplaySubject.createUnbounded(); Object[] expected = new Object[10]; for (int i = 0; i < expected.length; i++) { expected[i] = i; rs.onNext(i); assertArrayEquals(Arrays.copyOf(expected, i + 1), rs.getValues()); } rs.onComplete(); assertArrayEquals(expected, rs.getValues()); }
@Test public void testSizeAndHasAnyValueEffectivelyUnboundedEmptyCompleted() { ReplaySubject<Object> rs = ReplaySubject.createUnbounded(); rs.onComplete(); assertEquals(0, rs.size()); assertFalse(rs.hasValue()); }
@Test(timeout = 5000) public void testConcurrentSizeAndHasAnyValue() throws InterruptedException { final ReplaySubject<Object> rs = ReplaySubject.createUnbounded(); final CyclicBarrier cb = new CyclicBarrier(2);
@Test public void testSizeAndHasAnyValueEffectivelyUnboundedEmptyError() { ReplaySubject<Object> rs = ReplaySubject.createUnbounded(); rs.onError(new TestException()); assertEquals(0, rs.size()); assertFalse(rs.hasValue()); }
public void testSubscribeCompletionRaceCondition() { for (int i = 0; i < 50; i++) { final ReplaySubject<String> subject = ReplaySubject.createUnbounded(); final AtomicReference<String> value1 = new AtomicReference<String>();
@Test public void dispose() { TestHelper.checkDisposed(ReplaySubject.create()); TestHelper.checkDisposed(ReplaySubject.createUnbounded()); TestHelper.checkDisposed(ReplaySubject.createWithSize(10)); TestHelper.checkDisposed(ReplaySubject.createWithTimeAndSize(1, TimeUnit.SECONDS, Schedulers.single(), 10)); }
@Test public void testSizeAndHasAnyValueEffectivelyUnbounded() { ReplaySubject<Object> rs = ReplaySubject.createUnbounded(); assertEquals(0, rs.size()); assertFalse(rs.hasValue()); rs.onNext(1); assertEquals(1, rs.size()); assertTrue(rs.hasValue()); rs.onNext(1); assertEquals(2, rs.size()); assertTrue(rs.hasValue()); rs.onComplete(); assertEquals(2, rs.size()); assertTrue(rs.hasValue()); }
@Test public void testSizeAndHasAnyValueEffectivelyUnboundedError() { ReplaySubject<Object> rs = ReplaySubject.createUnbounded(); assertEquals(0, rs.size()); assertFalse(rs.hasValue()); rs.onNext(1); assertEquals(1, rs.size()); assertTrue(rs.hasValue()); rs.onNext(1); assertEquals(2, rs.size()); assertTrue(rs.hasValue()); rs.onError(new TestException()); assertEquals(2, rs.size()); assertTrue(rs.hasValue()); }