mirror of
https://github.com/eledio-devices/thirdparty-ArduinoJson.git
synced 2025-11-01 00:38:27 +01:00
Added JsonVariant::is<JsonVariant>() (issue #1412)
This commit is contained in:
@@ -11,7 +11,22 @@ TEST_CASE("JsonVariant::is<T>()") {
|
||||
DynamicJsonDocument doc(4096);
|
||||
JsonVariant variant = doc.to<JsonVariant>();
|
||||
|
||||
SECTION("undefined") {
|
||||
variant = JsonVariant();
|
||||
|
||||
CHECK(variant.is<JsonObject>() == false);
|
||||
CHECK(variant.is<JsonArray>() == false);
|
||||
CHECK(variant.is<JsonVariant>() == false);
|
||||
CHECK(variant.is<bool>() == false);
|
||||
CHECK(variant.is<char *>() == false);
|
||||
CHECK(variant.is<int>() == false);
|
||||
CHECK(variant.is<std::string>() == false);
|
||||
CHECK(variant.is<float>() == false);
|
||||
CHECK(variant.is<MYENUM2>() == false);
|
||||
}
|
||||
|
||||
SECTION("null") {
|
||||
CHECK(variant.is<JsonVariant>() == true);
|
||||
CHECK(variant.is<JsonObject>() == false);
|
||||
CHECK(variant.is<JsonArray>() == false);
|
||||
CHECK(variant.is<bool>() == false);
|
||||
@@ -26,6 +41,7 @@ TEST_CASE("JsonVariant::is<T>()") {
|
||||
variant.set(true);
|
||||
|
||||
CHECK(variant.is<bool>() == true);
|
||||
CHECK(variant.is<JsonVariant>() == true);
|
||||
CHECK(variant.is<JsonObject>() == false);
|
||||
CHECK(variant.is<JsonArray>() == false);
|
||||
CHECK(variant.is<char *>() == false);
|
||||
@@ -39,6 +55,7 @@ TEST_CASE("JsonVariant::is<T>()") {
|
||||
variant.set(false);
|
||||
|
||||
CHECK(variant.is<bool>() == true);
|
||||
CHECK(variant.is<JsonVariant>() == true);
|
||||
CHECK(variant.is<JsonObject>() == false);
|
||||
CHECK(variant.is<JsonArray>() == false);
|
||||
CHECK(variant.is<char *>() == false);
|
||||
@@ -57,6 +74,7 @@ TEST_CASE("JsonVariant::is<T>()") {
|
||||
CHECK(variant.is<double>() == true);
|
||||
CHECK(variant.is<float>() == true);
|
||||
CHECK(variant.is<MYENUM2>() == true);
|
||||
CHECK(variant.is<JsonVariant>() == true);
|
||||
CHECK(variant.is<bool>() == false);
|
||||
CHECK(variant.is<JsonObject>() == false);
|
||||
CHECK(variant.is<JsonArray>() == false);
|
||||
@@ -69,6 +87,7 @@ TEST_CASE("JsonVariant::is<T>()") {
|
||||
|
||||
CHECK(variant.is<double>() == true);
|
||||
CHECK(variant.is<float>() == true);
|
||||
CHECK(variant.is<JsonVariant>() == true);
|
||||
CHECK(variant.is<bool>() == false);
|
||||
CHECK(variant.is<JsonObject>() == false);
|
||||
CHECK(variant.is<JsonArray>() == false);
|
||||
@@ -84,6 +103,7 @@ TEST_CASE("JsonVariant::is<T>()") {
|
||||
CHECK(variant.is<char *>() == true);
|
||||
CHECK(variant.is<const char *>() == true);
|
||||
CHECK(variant.is<std::string>() == true);
|
||||
CHECK(variant.is<JsonVariant>() == true);
|
||||
CHECK(variant.is<double>() == false);
|
||||
CHECK(variant.is<float>() == false);
|
||||
CHECK(variant.is<bool>() == false);
|
||||
@@ -98,6 +118,7 @@ TEST_CASE("JsonVariant::is<T>()") {
|
||||
|
||||
CHECK(variant.is<JsonArray>() == true);
|
||||
CHECK(variant.is<JsonArrayConst>() == true);
|
||||
CHECK(variant.is<JsonVariant>() == true);
|
||||
CHECK(variant.is<JsonObject>() == false);
|
||||
CHECK(variant.is<JsonObjectConst>() == false);
|
||||
CHECK(variant.is<int>() == false);
|
||||
@@ -112,6 +133,7 @@ TEST_CASE("JsonVariant::is<T>()") {
|
||||
|
||||
CHECK(variant.is<JsonObject>() == true);
|
||||
CHECK(variant.is<JsonObjectConst>() == true);
|
||||
CHECK(variant.is<JsonVariant>() == true);
|
||||
CHECK(variant.is<JsonArray>() == false);
|
||||
CHECK(variant.is<JsonArrayConst>() == false);
|
||||
CHECK(variant.is<int>() == false);
|
||||
@@ -119,6 +141,7 @@ TEST_CASE("JsonVariant::is<T>()") {
|
||||
CHECK(variant.is<bool>() == false);
|
||||
CHECK(variant.is<char *>() == false);
|
||||
CHECK(variant.is<MYENUM2>() == false);
|
||||
CHECK(variant.is<JsonVariant>() == true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -127,9 +150,24 @@ TEST_CASE("JsonVariantConst::is<T>()") {
|
||||
JsonVariant variant = doc.to<JsonVariant>();
|
||||
JsonVariantConst cvariant = variant;
|
||||
|
||||
SECTION("undefined") {
|
||||
cvariant = JsonVariantConst();
|
||||
|
||||
CHECK(cvariant.is<JsonObject>() == false);
|
||||
CHECK(cvariant.is<JsonArray>() == false);
|
||||
CHECK(cvariant.is<JsonVariant>() == false);
|
||||
CHECK(cvariant.is<bool>() == false);
|
||||
CHECK(cvariant.is<char *>() == false);
|
||||
CHECK(cvariant.is<int>() == false);
|
||||
CHECK(cvariant.is<std::string>() == false);
|
||||
CHECK(cvariant.is<float>() == false);
|
||||
CHECK(cvariant.is<MYENUM2>() == false);
|
||||
}
|
||||
|
||||
SECTION("null") {
|
||||
CHECK(cvariant.is<JsonObject>() == false);
|
||||
CHECK(cvariant.is<JsonArray>() == false);
|
||||
CHECK(cvariant.is<JsonVariant>() == true);
|
||||
CHECK(cvariant.is<bool>() == false);
|
||||
CHECK(cvariant.is<char *>() == false);
|
||||
CHECK(cvariant.is<int>() == false);
|
||||
@@ -142,6 +180,7 @@ TEST_CASE("JsonVariantConst::is<T>()") {
|
||||
variant.set(true);
|
||||
|
||||
CHECK(cvariant.is<bool>() == true);
|
||||
CHECK(cvariant.is<JsonVariant>() == true);
|
||||
CHECK(cvariant.is<JsonObject>() == false);
|
||||
CHECK(cvariant.is<JsonArray>() == false);
|
||||
CHECK(cvariant.is<char *>() == false);
|
||||
@@ -155,6 +194,7 @@ TEST_CASE("JsonVariantConst::is<T>()") {
|
||||
variant.set(false);
|
||||
|
||||
CHECK(cvariant.is<bool>() == true);
|
||||
CHECK(cvariant.is<JsonVariant>() == true);
|
||||
CHECK(cvariant.is<JsonObject>() == false);
|
||||
CHECK(cvariant.is<JsonArray>() == false);
|
||||
CHECK(cvariant.is<char *>() == false);
|
||||
@@ -173,6 +213,7 @@ TEST_CASE("JsonVariantConst::is<T>()") {
|
||||
CHECK(cvariant.is<double>() == true);
|
||||
CHECK(cvariant.is<float>() == true);
|
||||
CHECK(cvariant.is<MYENUM2>() == true);
|
||||
CHECK(cvariant.is<JsonVariant>() == true);
|
||||
CHECK(cvariant.is<bool>() == false);
|
||||
CHECK(cvariant.is<JsonObject>() == false);
|
||||
CHECK(cvariant.is<JsonArray>() == false);
|
||||
@@ -185,6 +226,7 @@ TEST_CASE("JsonVariantConst::is<T>()") {
|
||||
|
||||
CHECK(cvariant.is<double>() == true);
|
||||
CHECK(cvariant.is<float>() == true);
|
||||
CHECK(cvariant.is<JsonVariant>() == true);
|
||||
CHECK(cvariant.is<bool>() == false);
|
||||
CHECK(cvariant.is<JsonObject>() == false);
|
||||
CHECK(cvariant.is<JsonArray>() == false);
|
||||
@@ -200,6 +242,7 @@ TEST_CASE("JsonVariantConst::is<T>()") {
|
||||
CHECK(cvariant.is<char *>() == true);
|
||||
CHECK(cvariant.is<const char *>() == true);
|
||||
CHECK(cvariant.is<std::string>() == true);
|
||||
CHECK(cvariant.is<JsonVariant>() == true);
|
||||
CHECK(cvariant.is<double>() == false);
|
||||
CHECK(cvariant.is<float>() == false);
|
||||
CHECK(cvariant.is<bool>() == false);
|
||||
@@ -214,6 +257,7 @@ TEST_CASE("JsonVariantConst::is<T>()") {
|
||||
|
||||
CHECK(cvariant.is<JsonArray>() == true);
|
||||
CHECK(cvariant.is<JsonArrayConst>() == true);
|
||||
CHECK(cvariant.is<JsonVariant>() == true);
|
||||
CHECK(cvariant.is<JsonObject>() == false);
|
||||
CHECK(cvariant.is<JsonObjectConst>() == false);
|
||||
CHECK(cvariant.is<int>() == false);
|
||||
@@ -228,6 +272,7 @@ TEST_CASE("JsonVariantConst::is<T>()") {
|
||||
|
||||
CHECK(cvariant.is<JsonObject>() == true);
|
||||
CHECK(cvariant.is<JsonObjectConst>() == true);
|
||||
CHECK(cvariant.is<JsonVariant>() == true);
|
||||
CHECK(cvariant.is<JsonArray>() == false);
|
||||
CHECK(cvariant.is<JsonArrayConst>() == false);
|
||||
CHECK(cvariant.is<int>() == false);
|
||||
|
||||
Reference in New Issue
Block a user