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