You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.5 KiB
58 lines
1.5 KiB
#include <ArduinoJson.h>
|
|
|
|
#include <catch.hpp>
|
|
|
|
TEST_CASE("Issue #1120") {
|
|
JsonDocument doc;
|
|
constexpr char str[] =
|
|
"{\"contents\":[{\"module\":\"Packet\"},{\"module\":\"Analog\"}]}";
|
|
deserializeJson(doc, str);
|
|
|
|
SECTION("MemberProxy<std::string>::isNull()") {
|
|
SECTION("returns false") {
|
|
auto value = doc[std::string("contents")];
|
|
CHECK(value.isNull() == false);
|
|
}
|
|
|
|
SECTION("returns true") {
|
|
auto value = doc[std::string("zontents")];
|
|
CHECK(value.isNull() == true);
|
|
}
|
|
}
|
|
|
|
SECTION("ElementProxy<MemberProxy<const char*> >::isNull()") {
|
|
SECTION("returns false") { // Issue #1120
|
|
auto value = doc["contents"][1];
|
|
CHECK(value.isNull() == false);
|
|
}
|
|
|
|
SECTION("returns true") {
|
|
auto value = doc["contents"][2];
|
|
CHECK(value.isNull() == true);
|
|
}
|
|
}
|
|
|
|
SECTION("MemberProxy<ElementProxy<MemberProxy>, const char*>::isNull()") {
|
|
SECTION("returns false") {
|
|
auto value = doc["contents"][1]["module"];
|
|
CHECK(value.isNull() == false);
|
|
}
|
|
|
|
SECTION("returns true") {
|
|
auto value = doc["contents"][1]["zodule"];
|
|
CHECK(value.isNull() == true);
|
|
}
|
|
}
|
|
|
|
SECTION("MemberProxy<ElementProxy<MemberProxy>, std::string>::isNull()") {
|
|
SECTION("returns false") {
|
|
auto value = doc["contents"][1][std::string("module")];
|
|
CHECK(value.isNull() == false);
|
|
}
|
|
|
|
SECTION("returns true") {
|
|
auto value = doc["contents"][1][std::string("zodule")];
|
|
CHECK(value.isNull() == true);
|
|
}
|
|
}
|
|
}
|
|
|