@@ -1433,6 +1433,40 @@ JSONTEST_FIXTURE(ValueTest, compareType) {
14331433 Json::Value (Json::objectValue)));
14341434}
14351435
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+
14361470void ValueTest::checkIsLess (const Json::Value& x, const Json::Value& y) {
14371471 JSONTEST_ASSERT (x < y);
14381472 JSONTEST_ASSERT (y > x);
@@ -2544,6 +2578,7 @@ int main(int argc, const char* argv[]) {
25442578 JSONTEST_REGISTER_FIXTURE (runner, ValueTest, compareArray);
25452579 JSONTEST_REGISTER_FIXTURE (runner, ValueTest, compareObject);
25462580 JSONTEST_REGISTER_FIXTURE (runner, ValueTest, compareType);
2581+ JSONTEST_REGISTER_FIXTURE (runner, ValueTest, CopyObject);
25472582 JSONTEST_REGISTER_FIXTURE (runner, ValueTest, offsetAccessors);
25482583 JSONTEST_REGISTER_FIXTURE (runner, ValueTest, typeChecksThrowExceptions);
25492584 JSONTEST_REGISTER_FIXTURE (runner, ValueTest, StaticString);
0 commit comments