@Test public void testBehaviorRelayIncompleteEmpty() { BehaviorRelay<Integer> async = BehaviorRelay.create(); assertFalse(async.hasObservers()); assertNull(async.getValue()); assertFalse(async.hasValue()); assertArrayEquals(new Object[] {}, async.getValues()); assertArrayEquals(new Integer[] {}, async.getValues(new Integer[0])); assertArrayEquals(new Integer[] {null}, async.getValues(new Integer[] {0})); assertArrayEquals(new Integer[] {null, 0}, async.getValues(new Integer[] {0, 0})); }
@Test public void testBehaviorRelayValueRelayIncomplete() { BehaviorRelay<Integer> async = BehaviorRelay.create(); async.call(1); assertFalse(async.hasObservers()); assertEquals((Integer) 1, async.getValue()); assertTrue(async.hasValue()); assertArrayEquals(new Object[] {1}, async.getValues()); assertArrayEquals(new Integer[] {1}, async.getValues(new Integer[0])); assertArrayEquals(new Integer[] {1}, async.getValues(new Integer[] {0})); assertArrayEquals(new Integer[] {1, null}, async.getValues(new Integer[] {0, 0})); }
@Test public void testTakeOneSubscriber() { BehaviorRelay<Integer> source = BehaviorRelay.create(1); @SuppressWarnings("unchecked") final Observer<Object> o = mock(Observer.class); source.take(1).subscribe(o); verify(o).onNext(1); verify(o).onCompleted(); verifyNoMoreInteractions(o); assertEquals(0, source.subscriberCount()); assertFalse(source.hasObservers()); }