@@ -2282,6 +2282,42 @@ JSONTEST_FIXTURE(IteratorTest, distance) {
2282
2282
JSONTEST_ASSERT_STRING_EQUAL (" b" , str);
2283
2283
}
2284
2284
2285
+ JSONTEST_FIXTURE (IteratorTest, names) {
2286
+ Json::Value json;
2287
+ json[" k1" ] = " a" ;
2288
+ json[" k2" ] = " b" ;
2289
+ Json::ValueIterator it = json.begin ();
2290
+ JSONTEST_ASSERT (it != json.end ());
2291
+ JSONTEST_ASSERT_EQUAL (Json::Value (" k1" ), it.key ());
2292
+ JSONTEST_ASSERT_STRING_EQUAL (" k1" , it.name ());
2293
+ JSONTEST_ASSERT_EQUAL (-1 , it.index ());
2294
+ ++it;
2295
+ JSONTEST_ASSERT (it != json.end ());
2296
+ JSONTEST_ASSERT_EQUAL (Json::Value (" k2" ), it.key ());
2297
+ JSONTEST_ASSERT_STRING_EQUAL (" k2" , it.name ());
2298
+ JSONTEST_ASSERT_EQUAL (-1 , it.index ());
2299
+ ++it;
2300
+ JSONTEST_ASSERT (it == json.end ());
2301
+ }
2302
+
2303
+ JSONTEST_FIXTURE (IteratorTest, indexes) {
2304
+ Json::Value json;
2305
+ json[0 ] = " a" ;
2306
+ json[1 ] = " b" ;
2307
+ Json::ValueIterator it = json.begin ();
2308
+ JSONTEST_ASSERT (it != json.end ());
2309
+ JSONTEST_ASSERT_EQUAL (Json::Value (Json::ArrayIndex (0 )), it.key ());
2310
+ JSONTEST_ASSERT_STRING_EQUAL (" " , it.name ());
2311
+ JSONTEST_ASSERT_EQUAL (0 , it.index ());
2312
+ ++it;
2313
+ JSONTEST_ASSERT (it != json.end ());
2314
+ JSONTEST_ASSERT_EQUAL (Json::Value (Json::ArrayIndex (1 )), it.key ());
2315
+ JSONTEST_ASSERT_STRING_EQUAL (" " , it.name ());
2316
+ JSONTEST_ASSERT_EQUAL (1 , it.index ());
2317
+ ++it;
2318
+ JSONTEST_ASSERT (it == json.end ());
2319
+ }
2320
+
2285
2321
int main (int argc, const char * argv[]) {
2286
2322
JsonTest::Runner runner;
2287
2323
JSONTEST_REGISTER_FIXTURE (runner, ValueTest, checkNormalizeFloatingPointStr);
@@ -2346,6 +2382,8 @@ int main(int argc, const char* argv[]) {
2346
2382
JSONTEST_REGISTER_FIXTURE (runner, BuilderTest, settings);
2347
2383
2348
2384
JSONTEST_REGISTER_FIXTURE (runner, IteratorTest, distance);
2385
+ JSONTEST_REGISTER_FIXTURE (runner, IteratorTest, names);
2386
+ JSONTEST_REGISTER_FIXTURE (runner, IteratorTest, indexes);
2349
2387
2350
2388
return runner.runCommandLine (argc, argv);
2351
2389
}
0 commit comments