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);
// 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,"
"\"data\":[48.756080,2.302038]}"));
JsonObject obj = doc.as<JsonObject>();

View File

@ -147,4 +147,16 @@ TEST_CASE("JsonVariant::is()") {
SECTION("string") {
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") {
JsonVariant variant;
SECTION("as<long>()") {
REQUIRE(0 == variant.as<long>());
SECTION("as<T>()") {
SECTION("long") {
REQUIRE(variant.as<long>() == 0);
}
SECTION("as<unsigned>()") {
REQUIRE(0 == variant.as<unsigned>());
SECTION("unsigned") {
REQUIRE(variant.as<unsigned>() == 0);
}
SECTION("as<char*>()") {
REQUIRE(0 == variant.as<char*>());
SECTION("char*") {
REQUIRE(variant.as<char*>() == 0);
}
SECTION("as<double>()") {
REQUIRE(0 == variant.as<double>());
SECTION("double") {
REQUIRE(variant.as<double>() == 0);
}
SECTION("as<bool>()") {
REQUIRE(false == variant.as<bool>());
SECTION("bool") {
REQUIRE(variant.as<bool>() == false);
}
SECTION("as<JsonArray>()") {
SECTION("JsonArray") {
REQUIRE(variant.as<JsonArray>().isNull());
}
SECTION("as<JsonObject>()") {
SECTION("JsonObject") {
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);
}
}
}