1515 */
1616package rx .operators ;
1717
18- import static org .mockito .Matchers .*;
1918import static org .mockito .Mockito .*;
20- import static rx .operators .OperationSkipWhile .*;
2119
2220import org .junit .Test ;
2321import org .mockito .InOrder ;
@@ -51,7 +49,7 @@ public Boolean call(Integer value, Integer index) {
5149 @ Test
5250 public void testSkipWithIndex () {
5351 Observable <Integer > src = Observable .from (1 , 2 , 3 , 4 , 5 );
54- Observable . create ( skipWhileWithIndex (src , INDEX_LESS_THAN_THREE ) ).subscribe (w );
52+ src . skipWhileWithIndex (INDEX_LESS_THAN_THREE ).subscribe (w );
5553
5654 InOrder inOrder = inOrder (w );
5755 inOrder .verify (w , times (1 )).onNext (4 );
@@ -63,7 +61,7 @@ public void testSkipWithIndex() {
6361 @ Test
6462 public void testSkipEmpty () {
6563 Observable <Integer > src = Observable .empty ();
66- Observable . create ( skipWhile (src , LESS_THAN_FIVE ) ).subscribe (w );
64+ src . skipWhile (LESS_THAN_FIVE ).subscribe (w );
6765 verify (w , never ()).onNext (anyInt ());
6866 verify (w , never ()).onError (any (Throwable .class ));
6967 verify (w , times (1 )).onCompleted ();
@@ -72,7 +70,7 @@ public void testSkipEmpty() {
7270 @ Test
7371 public void testSkipEverything () {
7472 Observable <Integer > src = Observable .from (1 , 2 , 3 , 4 , 3 , 2 , 1 );
75- Observable . create ( skipWhile (src , LESS_THAN_FIVE ) ).subscribe (w );
73+ src . skipWhile (LESS_THAN_FIVE ).subscribe (w );
7674 verify (w , never ()).onNext (anyInt ());
7775 verify (w , never ()).onError (any (Throwable .class ));
7876 verify (w , times (1 )).onCompleted ();
@@ -81,7 +79,7 @@ public void testSkipEverything() {
8179 @ Test
8280 public void testSkipNothing () {
8381 Observable <Integer > src = Observable .from (5 , 3 , 1 );
84- Observable . create ( skipWhile (src , LESS_THAN_FIVE ) ).subscribe (w );
82+ src . skipWhile (LESS_THAN_FIVE ).subscribe (w );
8583
8684 InOrder inOrder = inOrder (w );
8785 inOrder .verify (w , times (1 )).onNext (5 );
@@ -94,7 +92,7 @@ public void testSkipNothing() {
9492 @ Test
9593 public void testSkipSome () {
9694 Observable <Integer > src = Observable .from (1 , 2 , 3 , 4 , 5 , 3 , 1 , 5 );
97- Observable . create ( skipWhile (src , LESS_THAN_FIVE ) ).subscribe (w );
95+ src . skipWhile (LESS_THAN_FIVE ).subscribe (w );
9896
9997 InOrder inOrder = inOrder (w );
10098 inOrder .verify (w , times (1 )).onNext (5 );
@@ -108,11 +106,30 @@ public void testSkipSome() {
108106 @ Test
109107 public void testSkipError () {
110108 Observable <Integer > src = Observable .from (1 , 2 , 42 , 5 , 3 , 1 );
111- Observable . create ( skipWhile (src , LESS_THAN_FIVE ) ).subscribe (w );
109+ src . skipWhile (LESS_THAN_FIVE ).subscribe (w );
112110
113111 InOrder inOrder = inOrder (w );
114112 inOrder .verify (w , never ()).onNext (anyInt ());
115113 inOrder .verify (w , never ()).onCompleted ();
116114 inOrder .verify (w , times (1 )).onError (any (RuntimeException .class ));
117115 }
116+
117+ @ Test
118+ public void testSkipManySubscribers () {
119+ Observable <Integer > src = Observable .range (1 , 10 ).skipWhile (LESS_THAN_FIVE );
120+ int n = 5 ;
121+ for (int i = 0 ; i < n ; i ++) {
122+ @ SuppressWarnings ("unchecked" )
123+ Observer <Object > o = mock (Observer .class );
124+ InOrder inOrder = inOrder (o );
125+
126+ src .subscribe (o );
127+
128+ for (int j = 5 ; j < 10 ; j ++) {
129+ inOrder .verify (o ).onNext (j );
130+ }
131+ inOrder .verify (o ).onCompleted ();
132+ verify (o , never ()).onError (any (Throwable .class ));
133+ }
134+ }
118135}
0 commit comments