@Test public void testThatObserverReceivesLatestAndThenSubsequentEvents() { BehaviorRelay<String> relay = BehaviorRelay.create("default"); relay.call("one"); @SuppressWarnings("unchecked") Observer<String> observer = mock(Observer.class); relay.subscribe(observer); relay.call("two"); relay.call("three"); verify(observer, times(1)).onNext("one"); verify(observer, times(1)).onNext("two"); verify(observer, times(1)).onNext("three"); verifyNoMoreInteractions(observer); }
@Test public void testStartEmpty() { BehaviorRelay<Integer> source = BehaviorRelay.create(); @SuppressWarnings("unchecked") final Observer<Object> o = mock(Observer.class); InOrder inOrder = inOrder(o); source.subscribe(o); inOrder.verify(o, never()).onNext(any()); inOrder.verify(o, never()).onCompleted(); source.call(1); verify(o, never()).onError(any(Throwable.class)); verify(o, never()).onCompleted(); inOrder.verify(o).onNext(1); inOrder.verifyNoMoreInteractions(); }