mirror of
https://github.com/bblanchon/ArduinoJson.git
synced 2025-07-29 10:17:39 +02:00
Add JsonVariant::link()
(resolves #1343)
This commit is contained in:
@ -129,6 +129,44 @@ TEST_CASE("JsonVariant::operator[]") {
|
||||
REQUIRE(std::string("world") == variant[vla]);
|
||||
}
|
||||
#endif
|
||||
|
||||
SECTION("get value from linked object") {
|
||||
StaticJsonDocument<1024> doc2;
|
||||
doc2["hello"] = "world";
|
||||
var.link(doc2);
|
||||
|
||||
CHECK(var["hello"].as<std::string>() == "world");
|
||||
}
|
||||
|
||||
SECTION("set value to linked object") {
|
||||
StaticJsonDocument<1024> doc2;
|
||||
doc2["hello"] = "world";
|
||||
var.link(doc2);
|
||||
|
||||
var["tutu"] = "toto"; // no-op
|
||||
|
||||
CHECK(doc.as<std::string>() == "{\"hello\":\"world\"}");
|
||||
CHECK(doc2.as<std::string>() == "{\"hello\":\"world\"}");
|
||||
}
|
||||
|
||||
SECTION("get value from linked array") {
|
||||
StaticJsonDocument<1024> doc2;
|
||||
doc2.add(42);
|
||||
var.link(doc2);
|
||||
|
||||
CHECK(var[0].as<int>() == 42);
|
||||
}
|
||||
|
||||
SECTION("set value to linked array") {
|
||||
StaticJsonDocument<1024> doc2;
|
||||
doc2.add(42);
|
||||
var.link(doc2);
|
||||
|
||||
var[0] = 666; // no-op
|
||||
|
||||
CHECK(doc.as<std::string>() == "[42]");
|
||||
CHECK(doc2.as<std::string>() == "[42]");
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("JsonVariantConst::operator[]") {
|
||||
@ -201,4 +239,20 @@ TEST_CASE("JsonVariantConst::operator[]") {
|
||||
REQUIRE(var.is<JsonObject>() == false);
|
||||
REQUIRE(value == 0);
|
||||
}
|
||||
|
||||
SECTION("get value from linked object") {
|
||||
StaticJsonDocument<1024> doc2;
|
||||
doc2["hello"] = "world";
|
||||
var.link(doc2);
|
||||
|
||||
CHECK(cvar["hello"].as<std::string>() == "world");
|
||||
}
|
||||
|
||||
SECTION("get value from linked array") {
|
||||
StaticJsonDocument<1024> doc2;
|
||||
doc2.add(42);
|
||||
var.link(doc2);
|
||||
|
||||
CHECK(cvar[0].as<int>() == 42);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user