@@ -81,6 +81,20 @@ TEST(IteratorTest, IterateArrayEmpty) {
81
81
Slice s (parser.start ());
82
82
83
83
ArrayIterator it (s);
84
+ ASSERT_EQ (0U , it.size ());
85
+ ASSERT_FALSE (it.valid ());
86
+
87
+ ASSERT_VELOCYPACK_EXCEPTION (it.value (), Exception::IndexOutOfBounds);
88
+
89
+ it.next ();
90
+ ASSERT_FALSE (it.valid ());
91
+
92
+ ASSERT_VELOCYPACK_EXCEPTION ((*it), Exception::IndexOutOfBounds);
93
+ }
94
+
95
+ TEST (IteratorTest, IterateArrayEmptySpecial) {
96
+ ArrayIterator it (ArrayIterator::Empty{});
97
+ ASSERT_EQ (0U , it.size ());
84
98
ASSERT_FALSE (it.valid ());
85
99
86
100
ASSERT_VELOCYPACK_EXCEPTION (it.value (), Exception::IndexOutOfBounds);
@@ -99,6 +113,7 @@ TEST(IteratorTest, IterateArray) {
99
113
Slice s (parser.start ());
100
114
101
115
ArrayIterator it (s);
116
+ ASSERT_EQ (8U , it.size ());
102
117
103
118
ASSERT_TRUE (it.valid ());
104
119
Slice current = it.value ();
@@ -167,6 +182,7 @@ TEST(IteratorTest, IterateArrayForward) {
167
182
Slice s (parser.start ());
168
183
169
184
ArrayIterator it (s);
185
+ ASSERT_EQ (8U , it.size ());
170
186
171
187
ASSERT_TRUE (it.valid ());
172
188
Slice current = it.value ();
@@ -228,6 +244,7 @@ TEST(IteratorTest, IterateCompactArrayForward) {
228
244
Slice s (parser.start ());
229
245
230
246
ArrayIterator it (s);
247
+ ASSERT_EQ (8U , it.size ());
231
248
232
249
ASSERT_TRUE (it.valid ());
233
250
Slice current = it.value ();
@@ -286,12 +303,14 @@ TEST(IteratorTest, IterateSubArray) {
286
303
Slice s (parser.start ());
287
304
288
305
ArrayIterator it (s);
306
+ ASSERT_EQ (2U , it.size ());
289
307
290
308
ASSERT_TRUE (it.valid ());
291
309
Slice current = it.value ();
292
310
ASSERT_TRUE (current.isArray ());
293
311
294
312
ArrayIterator it2 (current);
313
+ ASSERT_EQ (3U , it2.size ());
295
314
ASSERT_TRUE (it2.valid ());
296
315
Slice sub = it2.value ();
297
316
ASSERT_TRUE (sub.isNumber ());
@@ -322,6 +341,7 @@ TEST(IteratorTest, IterateSubArray) {
322
341
ASSERT_TRUE (current.isArray ());
323
342
324
343
ArrayIterator it3 (current);
344
+ ASSERT_EQ (2U , it3.size ());
325
345
326
346
ASSERT_TRUE (it3.valid ());
327
347
sub = it3.value ();
@@ -352,6 +372,7 @@ TEST(IteratorTest, IterateArrayUnsorted) {
352
372
Slice s (parser.start ());
353
373
354
374
ArrayIterator it (s);
375
+ ASSERT_EQ (8U , it.size ());
355
376
356
377
ASSERT_TRUE (it.valid ());
357
378
Slice current = it.value ();
0 commit comments