forked from bblanchon/ArduinoJson
Make ElementProxy and MemberProxy non-copyable
This commit is contained in:
1 parent
5e7653b36a
commit
57a9c50b38
10 files changed
+105
-63
No files matched your search
@@ -67,7 +67,7 @@ TEST_CASE("JsonDocument::containsKey()") {
|
||||
|
||||
TEST_CASE("MemberProxy::containsKey()") {
|
||||
JsonDocument doc;
|
||||
auto mp = doc["hello"];
|
||||
const auto& mp = doc["hello"];
|
||||
|
||||
SECTION("containsKey(const char*)") {
|
||||
mp["key"] = "value";
|
||||
|
||||
@@ -12,7 +12,7 @@ using ElementProxy = ArduinoJson::detail::ElementProxy<JsonDocument&>;
|
||||
TEST_CASE("ElementProxy::add()") {
|
||||
JsonDocument doc;
|
||||
doc.add<JsonVariant>();
|
||||
ElementProxy ep = doc[0];
|
||||
const ElementProxy& ep = doc[0];
|
||||
|
||||
SECTION("add(int)") {
|
||||
ep.add(42);
|
||||
@@ -50,7 +50,7 @@ TEST_CASE("ElementProxy::add()") {
|
||||
TEST_CASE("ElementProxy::clear()") {
|
||||
JsonDocument doc;
|
||||
doc.add<JsonVariant>();
|
||||
ElementProxy ep = doc[0];
|
||||
const ElementProxy& ep = doc[0];
|
||||
|
||||
SECTION("size goes back to zero") {
|
||||
ep.add(42);
|
||||
@@ -110,7 +110,7 @@ TEST_CASE("ElementProxy::operator==()") {
|
||||
TEST_CASE("ElementProxy::remove()") {
|
||||
JsonDocument doc;
|
||||
doc.add<JsonVariant>();
|
||||
ElementProxy ep = doc[0];
|
||||
const ElementProxy& ep = doc[0];
|
||||
|
||||
SECTION("remove(int)") {
|
||||
ep.add(1);
|
||||
@@ -157,7 +157,7 @@ TEST_CASE("ElementProxy::remove()") {
|
||||
|
||||
TEST_CASE("ElementProxy::set()") {
|
||||
JsonDocument doc;
|
||||
ElementProxy ep = doc[0];
|
||||
const ElementProxy& ep = doc[0];
|
||||
|
||||
SECTION("set(int)") {
|
||||
ep.set(42);
|
||||
@@ -195,7 +195,7 @@ TEST_CASE("ElementProxy::set()") {
|
||||
TEST_CASE("ElementProxy::size()") {
|
||||
JsonDocument doc;
|
||||
doc.add<JsonVariant>();
|
||||
ElementProxy ep = doc[0];
|
||||
const ElementProxy& ep = doc[0];
|
||||
|
||||
SECTION("returns 0") {
|
||||
REQUIRE(ep.size() == 0);
|
||||
@@ -216,7 +216,7 @@ TEST_CASE("ElementProxy::size()") {
|
||||
|
||||
TEST_CASE("ElementProxy::operator[]") {
|
||||
JsonDocument doc;
|
||||
ElementProxy ep = doc[1];
|
||||
const ElementProxy& ep = doc[1];
|
||||
|
||||
SECTION("set member") {
|
||||
ep["world"] = 42;
|
||||
@@ -247,7 +247,7 @@ TEST_CASE("ElementProxy cast to JsonVariantConst") {
|
||||
JsonDocument doc;
|
||||
doc[0] = "world";
|
||||
|
||||
const ElementProxy ep = doc[0];
|
||||
const ElementProxy& ep = doc[0];
|
||||
|
||||
JsonVariantConst var = ep;
|
||||
|
||||
@@ -258,7 +258,7 @@ TEST_CASE("ElementProxy cast to JsonVariant") {
|
||||
JsonDocument doc;
|
||||
doc[0] = "world";
|
||||
|
||||
ElementProxy ep = doc[0];
|
||||
const ElementProxy& ep = doc[0];
|
||||
|
||||
JsonVariant var = ep;
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ using ArduinoJson::detail::sizeofObject;
|
||||
|
||||
TEST_CASE("MemberProxy::add()") {
|
||||
JsonDocument doc;
|
||||
auto mp = doc["hello"];
|
||||
const auto& mp = doc["hello"];
|
||||
|
||||
SECTION("add(int)") {
|
||||
mp.add(42);
|
||||
@@ -45,7 +45,7 @@ TEST_CASE("MemberProxy::add()") {
|
||||
|
||||
TEST_CASE("MemberProxy::clear()") {
|
||||
JsonDocument doc;
|
||||
auto mp = doc["hello"];
|
||||
const auto& mp = doc["hello"];
|
||||
|
||||
SECTION("size goes back to zero") {
|
||||
mp.add(42);
|
||||
@@ -136,7 +136,7 @@ TEST_CASE("MemberProxy::operator|()") {
|
||||
|
||||
TEST_CASE("MemberProxy::remove()") {
|
||||
JsonDocument doc;
|
||||
auto mp = doc["hello"];
|
||||
const auto& mp = doc["hello"];
|
||||
|
||||
SECTION("remove(int)") {
|
||||
mp.add(1);
|
||||
@@ -183,7 +183,7 @@ TEST_CASE("MemberProxy::remove()") {
|
||||
|
||||
TEST_CASE("MemberProxy::set()") {
|
||||
JsonDocument doc;
|
||||
auto mp = doc["hello"];
|
||||
const auto& mp = doc["hello"];
|
||||
|
||||
SECTION("set(int)") {
|
||||
mp.set(42);
|
||||
@@ -220,7 +220,7 @@ TEST_CASE("MemberProxy::set()") {
|
||||
|
||||
TEST_CASE("MemberProxy::size()") {
|
||||
JsonDocument doc;
|
||||
auto mp = doc["hello"];
|
||||
const auto& mp = doc["hello"];
|
||||
|
||||
SECTION("returns 0") {
|
||||
REQUIRE(mp.size() == 0);
|
||||
@@ -243,7 +243,7 @@ TEST_CASE("MemberProxy::size()") {
|
||||
|
||||
TEST_CASE("MemberProxy::operator[]") {
|
||||
JsonDocument doc;
|
||||
auto mp = doc["hello"];
|
||||
const auto& mp = doc["hello"];
|
||||
|
||||
SECTION("set member") {
|
||||
mp["world"] = 42;
|
||||
@@ -262,7 +262,7 @@ TEST_CASE("MemberProxy cast to JsonVariantConst") {
|
||||
JsonDocument doc;
|
||||
doc["hello"] = "world";
|
||||
|
||||
const auto mp = doc["hello"];
|
||||
const auto& mp = doc["hello"];
|
||||
|
||||
JsonVariantConst var = mp;
|
||||
|
||||
@@ -273,7 +273,7 @@ TEST_CASE("MemberProxy cast to JsonVariant") {
|
||||
JsonDocument doc;
|
||||
doc["hello"] = "world";
|
||||
|
||||
auto mp = doc["hello"];
|
||||
const auto& mp = doc["hello"];
|
||||
|
||||
JsonVariant var = mp;
|
||||
|
||||
|
||||
@@ -12,49 +12,41 @@ TEST_CASE("Issue #1120") {
|
||||
|
||||
SECTION("MemberProxy<std::string>::isNull()") {
|
||||
SECTION("returns false") {
|
||||
auto value = doc["contents"_s];
|
||||
CHECK(value.isNull() == false);
|
||||
CHECK(doc["contents"_s].isNull() == false);
|
||||
}
|
||||
|
||||
SECTION("returns true") {
|
||||
auto value = doc["zontents"_s];
|
||||
CHECK(value.isNull() == true);
|
||||
CHECK(doc["zontents"_s].isNull() == true);
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("ElementProxy<MemberProxy<const char*> >::isNull()") {
|
||||
SECTION("returns false") { // Issue #1120
|
||||
auto value = doc["contents"][1];
|
||||
CHECK(value.isNull() == false);
|
||||
CHECK(doc["contents"][1].isNull() == false);
|
||||
}
|
||||
|
||||
SECTION("returns true") {
|
||||
auto value = doc["contents"][2];
|
||||
CHECK(value.isNull() == true);
|
||||
CHECK(doc["contents"][2].isNull() == true);
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("MemberProxy<ElementProxy<MemberProxy>, const char*>::isNull()") {
|
||||
SECTION("returns false") {
|
||||
auto value = doc["contents"][1]["module"];
|
||||
CHECK(value.isNull() == false);
|
||||
CHECK(doc["contents"][1]["module"].isNull() == false);
|
||||
}
|
||||
|
||||
SECTION("returns true") {
|
||||
auto value = doc["contents"][1]["zodule"];
|
||||
CHECK(value.isNull() == true);
|
||||
CHECK(doc["contents"][1]["zodule"].isNull() == true);
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("MemberProxy<ElementProxy<MemberProxy>, std::string>::isNull()") {
|
||||
SECTION("returns false") {
|
||||
auto value = doc["contents"][1]["module"_s];
|
||||
CHECK(value.isNull() == false);
|
||||
CHECK(doc["contents"][1]["module"_s].isNull() == false);
|
||||
}
|
||||
|
||||
SECTION("returns true") {
|
||||
auto value = doc["contents"][1]["zodule"_s];
|
||||
CHECK(value.isNull() == true);
|
||||
CHECK(doc["contents"][1]["zodule"_s].isNull() == true);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user