Skip to content

Commit 392e3a5

Browse files
committed
Add basic test for Value::copy() (open-source-parsers#704)
1 parent c69148c commit 392e3a5

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

src/test_lib_json/main.cpp

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
14361470
void 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

Comments
 (0)