@@ -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