12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #include <ArduinoJson.h>
- #include <catch.hpp>
- TEST_CASE("Issue #1120") {
- StaticJsonDocument<500> 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);
- }
- }
- }
|