@@ -91,6 +91,7 @@ public void call() {
91
91
public static class UnitTest {
92
92
private TestScheduler scheduler ;
93
93
private Observer <Long > observer ;
94
+ private Observer <Long > observer2 ;
94
95
95
96
@ Before
96
97
@ SuppressWarnings ("unchecked" ) // due to mocking
@@ -123,5 +124,44 @@ public void testInterval() {
123
124
verify (observer , times (1 )).onCompleted ();
124
125
verify (observer , never ()).onError (any (Throwable .class ));
125
126
}
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
+ }
126
166
}
127
167
}
0 commit comments