forked from bblanchon/ArduinoJson
Add JsonVariant::link()
(resolves #1343)
This commit is contained in:
@ -144,6 +144,24 @@ TEST_CASE("JsonVariant::is<T>()") {
|
||||
CHECK(variant.is<MYENUM2>() == false);
|
||||
}
|
||||
|
||||
SECTION("linked array") {
|
||||
StaticJsonDocument<1024> doc2;
|
||||
doc2[0] = "world";
|
||||
variant.link(doc2);
|
||||
|
||||
CHECK(variant.is<JsonArray>() == false);
|
||||
CHECK(variant.is<JsonArrayConst>() == true);
|
||||
CHECK(variant.is<JsonVariant>() == true);
|
||||
CHECK(variant.is<JsonVariantConst>() == true);
|
||||
CHECK(variant.is<JsonObject>() == false);
|
||||
CHECK(variant.is<JsonObjectConst>() == false);
|
||||
CHECK(variant.is<int>() == false);
|
||||
CHECK(variant.is<float>() == false);
|
||||
CHECK(variant.is<bool>() == false);
|
||||
CHECK(variant.is<const char *>() == false);
|
||||
CHECK(variant.is<MYENUM2>() == false);
|
||||
}
|
||||
|
||||
SECTION("JsonObject") {
|
||||
variant.to<JsonObject>();
|
||||
|
||||
@ -161,6 +179,44 @@ TEST_CASE("JsonVariant::is<T>()") {
|
||||
CHECK(variant.is<JsonVariant>() == true);
|
||||
CHECK(variant.is<JsonVariantConst>() == true);
|
||||
}
|
||||
|
||||
SECTION("linked object") {
|
||||
StaticJsonDocument<1024> doc2;
|
||||
doc2["hello"] = "world";
|
||||
variant.link(doc2);
|
||||
|
||||
CHECK(variant.is<JsonObject>() == false);
|
||||
CHECK(variant.is<JsonObjectConst>() == true);
|
||||
CHECK(variant.is<JsonVariant>() == true);
|
||||
CHECK(variant.is<JsonVariantConst>() == true);
|
||||
CHECK(variant.is<JsonArray>() == false);
|
||||
CHECK(variant.is<JsonArrayConst>() == false);
|
||||
CHECK(variant.is<int>() == false);
|
||||
CHECK(variant.is<float>() == false);
|
||||
CHECK(variant.is<bool>() == false);
|
||||
CHECK(variant.is<const char *>() == false);
|
||||
CHECK(variant.is<MYENUM2>() == false);
|
||||
CHECK(variant.is<JsonVariant>() == true);
|
||||
CHECK(variant.is<JsonVariantConst>() == true);
|
||||
}
|
||||
|
||||
SECTION("linked int") {
|
||||
StaticJsonDocument<1024> doc2;
|
||||
doc2.set(42);
|
||||
variant.link(doc2);
|
||||
|
||||
CHECK(variant.is<JsonObjectConst>() == false);
|
||||
CHECK(variant.is<JsonVariantConst>() == true);
|
||||
CHECK(variant.is<JsonObject>() == false);
|
||||
CHECK(variant.is<JsonVariant>() == true);
|
||||
CHECK(variant.is<JsonArray>() == false);
|
||||
CHECK(variant.is<JsonArrayConst>() == false);
|
||||
CHECK(variant.is<int>() == true);
|
||||
CHECK(variant.is<float>() == true);
|
||||
CHECK(variant.is<bool>() == false);
|
||||
CHECK(variant.is<const char *>() == false);
|
||||
CHECK(variant.is<MYENUM2>() == true);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("JsonVariantConst::is<T>()") {
|
||||
@ -316,4 +372,58 @@ TEST_CASE("JsonVariantConst::is<T>()") {
|
||||
CHECK(cvariant.is<const char *>() == false);
|
||||
CHECK(cvariant.is<MYENUM2>() == false);
|
||||
}
|
||||
|
||||
SECTION("linked array") {
|
||||
StaticJsonDocument<1024> doc2;
|
||||
doc2[0] = "world";
|
||||
variant.link(doc2);
|
||||
|
||||
CHECK(cvariant.is<JsonArrayConst>() == true);
|
||||
CHECK(cvariant.is<JsonVariantConst>() == true);
|
||||
CHECK(cvariant.is<JsonArray>() == false);
|
||||
CHECK(cvariant.is<JsonVariant>() == false);
|
||||
CHECK(cvariant.is<JsonObject>() == false);
|
||||
CHECK(cvariant.is<JsonObjectConst>() == false);
|
||||
CHECK(cvariant.is<int>() == false);
|
||||
CHECK(cvariant.is<float>() == false);
|
||||
CHECK(cvariant.is<bool>() == false);
|
||||
CHECK(cvariant.is<const char *>() == false);
|
||||
CHECK(cvariant.is<MYENUM2>() == false);
|
||||
}
|
||||
|
||||
SECTION("linked object") {
|
||||
StaticJsonDocument<1024> doc2;
|
||||
doc2["hello"] = "world";
|
||||
variant.link(doc2);
|
||||
|
||||
CHECK(cvariant.is<JsonObjectConst>() == true);
|
||||
CHECK(cvariant.is<JsonVariantConst>() == true);
|
||||
CHECK(cvariant.is<JsonObject>() == false);
|
||||
CHECK(cvariant.is<JsonVariant>() == false);
|
||||
CHECK(cvariant.is<JsonArray>() == false);
|
||||
CHECK(cvariant.is<JsonArrayConst>() == false);
|
||||
CHECK(cvariant.is<int>() == false);
|
||||
CHECK(cvariant.is<float>() == false);
|
||||
CHECK(cvariant.is<bool>() == false);
|
||||
CHECK(cvariant.is<const char *>() == false);
|
||||
CHECK(cvariant.is<MYENUM2>() == false);
|
||||
}
|
||||
|
||||
SECTION("linked int") {
|
||||
StaticJsonDocument<1024> doc2;
|
||||
doc2.set(42);
|
||||
variant.link(doc2);
|
||||
|
||||
CHECK(cvariant.is<JsonObjectConst>() == false);
|
||||
CHECK(cvariant.is<JsonVariantConst>() == true);
|
||||
CHECK(cvariant.is<JsonObject>() == false);
|
||||
CHECK(cvariant.is<JsonVariant>() == false);
|
||||
CHECK(cvariant.is<JsonArray>() == false);
|
||||
CHECK(cvariant.is<JsonArrayConst>() == false);
|
||||
CHECK(cvariant.is<int>() == true);
|
||||
CHECK(cvariant.is<float>() == true);
|
||||
CHECK(cvariant.is<bool>() == false);
|
||||
CHECK(cvariant.is<const char *>() == false);
|
||||
CHECK(cvariant.is<MYENUM2>() == true);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user