Skip to content

Commit 2fe6da7

Browse files
author
Joachim Hofer
committed
added test with multiple subscribers
1 parent 19541d0 commit 2fe6da7

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

rxjava-core/src/main/java/rx/operators/OperationInterval.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ public void call() {
9191
public static class UnitTest {
9292
private TestScheduler scheduler;
9393
private Observer<Long> observer;
94+
private Observer<Long> observer2;
9495

9596
@Before
9697
@SuppressWarnings("unchecked") // due to mocking
@@ -123,5 +124,44 @@ public void testInterval() {
123124
verify(observer, times(1)).onCompleted();
124125
verify(observer, never()).onError(any(Throwable.class));
125126
}
127+
128+
@Test
129+
public void testWithMultipleSubscribersStartingAtSameTime() {
130+
Observable<Long> w = Observable.create(OperationInterval.interval(1, TimeUnit.SECONDS, scheduler));
131+
Subscription sub1 = w.subscribe(observer);
132+
Subscription sub2 = w.subscribe(observer2);
133+
134+
verify(observer, never()).onNext(anyLong());
135+
verify(observer2, never()).onNext(anyLong());
136+
137+
scheduler.advanceTimeTo(2, TimeUnit.SECONDS);
138+
139+
InOrder inOrder1 = inOrder(observer);
140+
InOrder inOrder2 = inOrder(observer2);
141+
142+
inOrder1.verify(observer, times(1)).onNext(0L);
143+
inOrder1.verify(observer, times(1)).onNext(1L);
144+
inOrder1.verify(observer, never()).onNext(2L);
145+
verify(observer, never()).onCompleted();
146+
verify(observer, never()).onError(any(Throwable.class));
147+
148+
inOrder2.verify(observer2, times(1)).onNext(0L);
149+
inOrder2.verify(observer2, times(1)).onNext(1L);
150+
inOrder2.verify(observer2, never()).onNext(2L);
151+
verify(observer2, never()).onCompleted();
152+
verify(observer2, never()).onError(any(Throwable.class));
153+
154+
sub1.unsubscribe();
155+
sub2.unsubscribe();
156+
scheduler.advanceTimeTo(4, TimeUnit.SECONDS);
157+
158+
verify(observer, never()).onNext(2L);
159+
verify(observer, times(1)).onCompleted();
160+
verify(observer, never()).onError(any(Throwable.class));
161+
162+
verify(observer2, never()).onNext(2L);
163+
verify(observer2, times(1)).onCompleted();
164+
verify(observer2, never()).onError(any(Throwable.class));
165+
}
126166
}
127167
}

0 commit comments

Comments
 (0)