From 4cfa96c94ea66641ee7106de65cbf34aa29852b9 Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Thu, 30 Nov 2023 14:53:55 +0100 Subject: [PATCH] enh(JSON): Add unit test testBasicJson to test basic functionality of the JSON parser. #3331 (#4315) --- JSON/testsuite/src/JSONTest.cpp | 38 +++++++++++++++++++++++++++++++++ JSON/testsuite/src/JSONTest.h | 2 ++ 2 files changed, 40 insertions(+) diff --git a/JSON/testsuite/src/JSONTest.cpp b/JSON/testsuite/src/JSONTest.cpp index d28696406..7e0b56d4d 100644 --- a/JSON/testsuite/src/JSONTest.cpp +++ b/JSON/testsuite/src/JSONTest.cpp @@ -1806,6 +1806,43 @@ void JSONTest::testVarConvert() assertTrue(cvt == "[1,2,3]"); } +void JSONTest::testBasicJson() +{ + // Tests basic JSON structure and accessibility of members + + const auto json = R"( + { + "clientConfig" : "Franky", + "arrayMember": [1, "A", 3.5], + "objectMember": { + "a": 1, + "b": "B" + } + } + )"; + Poco::JSON::Parser jsonParser; + Poco::Dynamic::Var jsonObject = jsonParser.parse(json); + + Poco::JSON::Object::Ptr jsonPtr = jsonObject.extract(); + + assertFalse(jsonPtr->get("clientConfig").isEmpty()); + const auto testStr = jsonPtr->getValue("clientConfig"); + assertEqual(testStr, "Franky"); + + const auto testArr = jsonPtr->getArray("arrayMember"); + assertFalse(testArr.isNull()); + assertFalse(testArr->empty()); + assertEqual(testArr->size(), 3); + assertEqual(testArr->getElement(0), 1); + assertEqual(testArr->getElement(1), "A"); + + const auto testObj = jsonPtr->getObject("objectMember"); + assertFalse(testObj.isNull()); + assertEqual(testObj->size(), 2); + assertEqual(testObj->getValue("a"), 1); + assertEqual(testObj->getValue("b"), "B"); + +} void JSONTest::testValidJanssonFiles() { @@ -2375,6 +2412,7 @@ CppUnit::Test* JSONTest::suite() CppUnit_addTest(pSuite, JSONTest, testStringifyNaN); CppUnit_addTest(pSuite, JSONTest, testStringifyPreserveOrder); CppUnit_addTest(pSuite, JSONTest, testVarConvert); + CppUnit_addTest(pSuite, JSONTest, testBasicJson); CppUnit_addTest(pSuite, JSONTest, testValidJanssonFiles); CppUnit_addTest(pSuite, JSONTest, testInvalidJanssonFiles); CppUnit_addTest(pSuite, JSONTest, testInvalidUnicodeJanssonFiles); diff --git a/JSON/testsuite/src/JSONTest.h b/JSON/testsuite/src/JSONTest.h index c459bc231..40bf81a1a 100644 --- a/JSON/testsuite/src/JSONTest.h +++ b/JSON/testsuite/src/JSONTest.h @@ -71,6 +71,8 @@ public: void testStringifyPreserveOrder(); void testVarConvert(); + void testBasicJson(); + void testValidJanssonFiles(); void testInvalidJanssonFiles(); void testTemplate();