@@ -85,11 +85,13 @@ public class RoutingIteratorTests {
85
85
86
86
ShardIterator shardIterator = routingTable .index ("test1" ).shard (0 ).shardsIt (0 );
87
87
assertThat (shardIterator .size (), equalTo (3 ));
88
+ ShardRouting firstRouting = shardIterator .firstOrNull ();
88
89
assertThat (shardIterator .firstOrNull (), notNullValue ());
89
90
assertThat (shardIterator .remaining (), equalTo (3 ));
90
91
assertThat (shardIterator .firstOrNull (), sameInstance (shardIterator .firstOrNull ()));
91
92
assertThat (shardIterator .remaining (), equalTo (3 ));
92
93
ShardRouting shardRouting1 = shardIterator .nextOrNull ();
94
+ assertThat (firstRouting , sameInstance (shardRouting1 ));
93
95
assertThat (shardRouting1 , notNullValue ());
94
96
assertThat (shardIterator .remaining (), equalTo (2 ));
95
97
ShardRouting shardRouting2 = shardIterator .nextOrNull ();
@@ -119,11 +121,13 @@ public class RoutingIteratorTests {
119
121
120
122
ShardIterator shardIterator = routingTable .index ("test1" ).shard (0 ).shardsIt (0 );
121
123
assertThat (shardIterator .size (), equalTo (2 ));
124
+ ShardRouting firstRouting = shardIterator .firstOrNull ();
122
125
assertThat (shardIterator .firstOrNull (), notNullValue ());
123
126
assertThat (shardIterator .remaining (), equalTo (2 ));
124
127
assertThat (shardIterator .firstOrNull (), sameInstance (shardIterator .firstOrNull ()));
125
128
assertThat (shardIterator .remaining (), equalTo (2 ));
126
129
ShardRouting shardRouting1 = shardIterator .nextOrNull ();
130
+ assertThat (shardRouting1 , sameInstance (firstRouting ));
127
131
assertThat (shardRouting1 , notNullValue ());
128
132
assertThat (shardIterator .remaining (), equalTo (1 ));
129
133
ShardRouting shardRouting2 = shardIterator .nextOrNull ();
@@ -137,9 +141,11 @@ public class RoutingIteratorTests {
137
141
138
142
shardIterator = routingTable .index ("test1" ).shard (0 ).shardsIt (1 );
139
143
assertThat (shardIterator .size (), equalTo (2 ));
144
+ firstRouting = shardIterator .firstOrNull ();
140
145
assertThat (shardIterator .firstOrNull (), notNullValue ());
141
146
assertThat (shardIterator .firstOrNull (), sameInstance (shardIterator .firstOrNull ()));
142
147
ShardRouting shardRouting3 = shardIterator .nextOrNull ();
148
+ assertThat (firstRouting , sameInstance (shardRouting3 ));
143
149
assertThat (shardRouting1 , notNullValue ());
144
150
ShardRouting shardRouting4 = shardIterator .nextOrNull ();
145
151
assertThat (shardRouting2 , notNullValue ());
@@ -154,9 +160,11 @@ public class RoutingIteratorTests {
154
160
155
161
shardIterator = routingTable .index ("test1" ).shard (0 ).shardsIt (2 );
156
162
assertThat (shardIterator .size (), equalTo (2 ));
163
+ firstRouting = shardIterator .firstOrNull ();
157
164
assertThat (shardIterator .firstOrNull (), notNullValue ());
158
165
assertThat (shardIterator .firstOrNull (), sameInstance (shardIterator .firstOrNull ()));
159
166
ShardRouting shardRouting5 = shardIterator .nextOrNull ();
167
+ assertThat (shardRouting5 , sameInstance (firstRouting ));
160
168
assertThat (shardRouting5 , notNullValue ());
161
169
ShardRouting shardRouting6 = shardIterator .nextOrNull ();
162
170
assertThat (shardRouting6 , notNullValue ());
@@ -169,9 +177,11 @@ public class RoutingIteratorTests {
169
177
170
178
shardIterator = routingTable .index ("test1" ).shard (0 ).shardsIt (3 );
171
179
assertThat (shardIterator .size (), equalTo (2 ));
180
+ firstRouting = shardIterator .firstOrNull ();
172
181
assertThat (shardIterator .firstOrNull (), notNullValue ());
173
182
assertThat (shardIterator .firstOrNull (), sameInstance (shardIterator .firstOrNull ()));
174
183
ShardRouting shardRouting7 = shardIterator .nextOrNull ();
184
+ assertThat (shardRouting7 , sameInstance (firstRouting ));
175
185
assertThat (shardRouting7 , notNullValue ());
176
186
ShardRouting shardRouting8 = shardIterator .nextOrNull ();
177
187
assertThat (shardRouting8 , notNullValue ());
@@ -181,6 +191,23 @@ public class RoutingIteratorTests {
181
191
182
192
assertThat (shardRouting7 , sameInstance (shardRouting3 ));
183
193
assertThat (shardRouting8 , sameInstance (shardRouting4 ));
194
+
195
+ shardIterator = routingTable .index ("test1" ).shard (0 ).shardsIt (4 );
196
+ assertThat (shardIterator .size (), equalTo (2 ));
197
+ firstRouting = shardIterator .firstOrNull ();
198
+ assertThat (shardIterator .firstOrNull (), notNullValue ());
199
+ assertThat (shardIterator .firstOrNull (), sameInstance (shardIterator .firstOrNull ()));
200
+ ShardRouting shardRouting9 = shardIterator .nextOrNull ();
201
+ assertThat (shardRouting9 , sameInstance (firstRouting ));
202
+ assertThat (shardRouting9 , notNullValue ());
203
+ ShardRouting shardRouting10 = shardIterator .nextOrNull ();
204
+ assertThat (shardRouting10 , notNullValue ());
205
+ assertThat (shardRouting10 , not (sameInstance (shardRouting9 )));
206
+ assertThat (shardIterator .nextOrNull (), nullValue ());
207
+ assertThat (shardIterator .nextOrNull (), nullValue ());
208
+
209
+ assertThat (shardRouting9 , sameInstance (shardRouting5 ));
210
+ assertThat (shardRouting10 , sameInstance (shardRouting6 ));
184
211
}
185
212
186
213
@ Test public void testRandomRouting () {
0 commit comments