From 45c77b555851e78967638393296b48edcf4df3a1 Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Fri, 11 Mar 2022 17:38:40 +0100 Subject: [PATCH] createNested... --- extras/tests/JsonDocument/MemberProxy.cpp | 32 +++++++++++++++ extras/tests/JsonVariant/createNested.cpp | 48 +++++++++++++++-------- 2 files changed, 64 insertions(+), 16 deletions(-) diff --git a/extras/tests/JsonDocument/MemberProxy.cpp b/extras/tests/JsonDocument/MemberProxy.cpp index ea1dc44e..514fd000 100644 --- a/extras/tests/JsonDocument/MemberProxy.cpp +++ b/extras/tests/JsonDocument/MemberProxy.cpp @@ -245,3 +245,35 @@ TEST_CASE("MemberProxy::operator[]") { REQUIRE(doc.as() == "{\"hello\":[null,null,42]}"); } } + +TEST_CASE("MemberProxy::createNestedArray()") { + StaticJsonDocument<1024> doc; + JsonArray arr = doc["items"].createNestedArray(); + arr.add(42); + + CHECK(doc["items"][0][0] == 42); +} + +TEST_CASE("MemberProxy::createNestedArray(key)") { + StaticJsonDocument<1024> doc; + JsonArray arr = doc["weather"].createNestedArray("temp"); + arr.add(42); + + CHECK(doc["weather"]["temp"][0] == 42); +} + +TEST_CASE("MemberProxy::createNestedObject()") { + StaticJsonDocument<1024> doc; + JsonObject obj = doc["items"].createNestedObject(); + obj["value"] = 42; + + CHECK(doc["items"][0]["value"] == 42); +} + +TEST_CASE("MemberProxy::createNestedObject(key)") { + StaticJsonDocument<1024> doc; + JsonObject obj = doc["status"].createNestedObject("weather"); + obj["temp"] = 42; + + CHECK(doc["status"]["weather"]["temp"] == 42); +} diff --git a/extras/tests/JsonVariant/createNested.cpp b/extras/tests/JsonVariant/createNested.cpp index 34c74c47..0636762e 100644 --- a/extras/tests/JsonVariant/createNested.cpp +++ b/extras/tests/JsonVariant/createNested.cpp @@ -19,11 +19,15 @@ TEST_CASE("JsonVariant::createNestedObject()") { REQUIRE(obj.isNull() == false); } - SECTION("works on MemberProxy") { - JsonObject obj = variant["items"].createNestedObject(); - obj["value"] = 42; + SECTION("does nothing on linked array") { + StaticJsonDocument<128> doc2; + doc2[0] = 42; + variant.link(doc2); - REQUIRE(variant["items"][0]["value"] == 42); + variant.createNestedObject(); + + CHECK(variant.size() == 1); + CHECK(variant[0] == 42); } } @@ -38,11 +42,15 @@ TEST_CASE("JsonVariant::createNestedArray()") { REQUIRE(arr.isNull() == false); } - SECTION("works on MemberProxy") { - JsonArray arr = variant["items"].createNestedArray(); - arr.add(42); + SECTION("does nothing on linked array") { + StaticJsonDocument<128> doc2; + doc2[0] = 42; + variant.link(doc2); - REQUIRE(variant["items"][0][0] == 42); + variant.createNestedArray(); + + CHECK(variant.size() == 1); + CHECK(variant[0] == 42); } } @@ -58,11 +66,15 @@ TEST_CASE("JsonVariant::createNestedObject(key)") { REQUIRE(variant["weather"]["temp"] == 42); } - SECTION("works on MemberProxy") { - JsonObject obj = variant["status"].createNestedObject("weather"); - obj["temp"] = 42; + SECTION("does nothing on linked object") { + StaticJsonDocument<128> doc2; + doc2["hello"] = "world"; + variant.link(doc2); - REQUIRE(variant["status"]["weather"]["temp"] == 42); + variant.createNestedObject("weather"); + + CHECK(variant.size() == 1); + CHECK(variant["hello"] == "world"); } } @@ -77,10 +89,14 @@ TEST_CASE("JsonVariant::createNestedArray(key)") { REQUIRE(arr.isNull() == false); } - SECTION("works on MemberProxy") { - JsonArray arr = variant["weather"].createNestedArray("temp"); - arr.add(42); + SECTION("does nothing on linked object") { + StaticJsonDocument<128> doc2; + doc2["hello"] = "world"; + variant.link(doc2); - REQUIRE(variant["weather"]["temp"][0] == 42); + variant.createNestedArray("items"); + + CHECK(variant.size() == 1); + CHECK(variant["hello"] == "world"); } }