|
|
@@ -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);
|
|
|
+ }
|
|
|
}
|