@@ -1433,6 +1433,40 @@ JSONTEST_FIXTURE(ValueTest, compareType) {
1433
1433
Json::Value (Json::objectValue)));
1434
1434
}
1435
1435
1436
+ JSONTEST_FIXTURE (ValueTest, CopyObject) {
1437
+ Json::Value arrayVal;
1438
+ arrayVal.append (" val1" );
1439
+ arrayVal.append (" val2" );
1440
+ arrayVal.append (" val3" );
1441
+ Json::Value stringVal (" string value" );
1442
+ Json::Value copy1, copy2;
1443
+ {
1444
+ Json::Value arrayCopy, stringCopy;
1445
+ arrayCopy.copy (arrayVal);
1446
+ stringCopy.copy (stringVal);
1447
+ JSONTEST_ASSERT_PRED (checkIsEqual (arrayCopy, arrayVal));
1448
+ JSONTEST_ASSERT_PRED (checkIsEqual (stringCopy, stringVal));
1449
+ arrayCopy.append (" val4" );
1450
+ JSONTEST_ASSERT (arrayCopy.size () == 4 );
1451
+ arrayVal.append (" new4" );
1452
+ arrayVal.append (" new5" );
1453
+ JSONTEST_ASSERT (arrayVal.size () == 5 );
1454
+ JSONTEST_ASSERT (!(arrayCopy == arrayVal));
1455
+ stringCopy = " another string" ;
1456
+ JSONTEST_ASSERT (!(stringCopy == stringVal));
1457
+ copy1.copy (arrayCopy);
1458
+ copy2.copy (stringCopy);
1459
+ }
1460
+ JSONTEST_ASSERT (arrayVal.size () == 5 );
1461
+ JSONTEST_ASSERT (stringVal == " string value" );
1462
+ JSONTEST_ASSERT (copy1.size () == 4 );
1463
+ JSONTEST_ASSERT (copy2 == " another string" );
1464
+ copy1.copy (stringVal);
1465
+ JSONTEST_ASSERT (copy1 == " string value" );
1466
+ copy2.copy (arrayVal);
1467
+ JSONTEST_ASSERT (copy2.size () == 5 );
1468
+ }
1469
+
1436
1470
void ValueTest::checkIsLess (const Json::Value& x, const Json::Value& y) {
1437
1471
JSONTEST_ASSERT (x < y);
1438
1472
JSONTEST_ASSERT (y > x);
@@ -2544,6 +2578,7 @@ int main(int argc, const char* argv[]) {
2544
2578
JSONTEST_REGISTER_FIXTURE (runner, ValueTest, compareArray);
2545
2579
JSONTEST_REGISTER_FIXTURE (runner, ValueTest, compareObject);
2546
2580
JSONTEST_REGISTER_FIXTURE (runner, ValueTest, compareType);
2581
+ JSONTEST_REGISTER_FIXTURE (runner, ValueTest, CopyObject);
2547
2582
JSONTEST_REGISTER_FIXTURE (runner, ValueTest, offsetAccessors);
2548
2583
JSONTEST_REGISTER_FIXTURE (runner, ValueTest, typeChecksThrowExceptions);
2549
2584
JSONTEST_REGISTER_FIXTURE (runner, ValueTest, StaticString);
0 commit comments