Added more tests of JsonVariant::is<T>()

This commit is contained in:
Benoit Blanchon
2019-02-01 11:28:27 +01:00
parent 2c2cc33c94
commit 070cd5b6c0
3 changed files with 64 additions and 20 deletions

View File

@ -17,7 +17,7 @@ void setup() {
DynamicJsonDocument doc(1024); DynamicJsonDocument doc(1024);
// You can use a Flash String as your JSON input. // You can use a Flash String as your JSON input.
// WARNING: the string in the input will be duplicated in the JsonDocument. // WARNING: the strings in the input will be duplicated in the JsonDocument.
deserializeJson(doc, F("{\"sensor\":\"gps\",\"time\":1351824120," deserializeJson(doc, F("{\"sensor\":\"gps\",\"time\":1351824120,"
"\"data\":[48.756080,2.302038]}")); "\"data\":[48.756080,2.302038]}"));
JsonObject obj = doc.as<JsonObject>(); JsonObject obj = doc.as<JsonObject>();

View File

@ -147,4 +147,16 @@ TEST_CASE("JsonVariant::is()") {
SECTION("string") { SECTION("string") {
testString("42"); testString("42");
} }
SECTION("null") {
DynamicJsonDocument doc(4096);
deserializeJson(doc, "[null]");
JsonVariant v = doc[0];
REQUIRE(v.is<bool>() == false);
REQUIRE(v.is<char *>() == false);
REQUIRE(v.is<int>() == false);
REQUIRE(v.is<std::string>() == false);
REQUIRE(v.is<float>() == false);
}
} }

View File

@ -8,31 +8,63 @@
TEST_CASE("JsonVariant undefined") { TEST_CASE("JsonVariant undefined") {
JsonVariant variant; JsonVariant variant;
SECTION("as<long>()") { SECTION("as<T>()") {
REQUIRE(0 == variant.as<long>()); SECTION("long") {
REQUIRE(variant.as<long>() == 0);
} }
SECTION("as<unsigned>()") { SECTION("unsigned") {
REQUIRE(0 == variant.as<unsigned>()); REQUIRE(variant.as<unsigned>() == 0);
} }
SECTION("as<char*>()") { SECTION("char*") {
REQUIRE(0 == variant.as<char*>()); REQUIRE(variant.as<char*>() == 0);
} }
SECTION("as<double>()") { SECTION("double") {
REQUIRE(0 == variant.as<double>()); REQUIRE(variant.as<double>() == 0);
} }
SECTION("as<bool>()") { SECTION("bool") {
REQUIRE(false == variant.as<bool>()); REQUIRE(variant.as<bool>() == false);
} }
SECTION("as<JsonArray>()") { SECTION("JsonArray") {
REQUIRE(variant.as<JsonArray>().isNull()); REQUIRE(variant.as<JsonArray>().isNull());
} }
SECTION("as<JsonObject>()") { SECTION("JsonObject") {
REQUIRE(variant.as<JsonObject>().isNull()); REQUIRE(variant.as<JsonObject>().isNull());
} }
} }
SECTION("is<T>()") {
SECTION("long") {
REQUIRE(variant.is<long>() == false);
}
SECTION("unsigned") {
REQUIRE(variant.is<unsigned>() == false);
}
SECTION("char*") {
REQUIRE(variant.is<char*>() == false);
}
SECTION("double") {
REQUIRE(variant.is<double>() == false);
}
SECTION("bool") {
REQUIRE(variant.is<bool>() == false);
}
SECTION("JsonArray") {
REQUIRE(variant.is<JsonArray>() == false);
}
SECTION("JsonObject") {
REQUIRE(variant.is<JsonObject>() == false);
}
}
}