12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- // ArduinoJson - https://arduinojson.org
- // Copyright © 2014-2022, Benoit BLANCHON
- // MIT License
- #include <ArduinoJson.h>
- #include <catch.hpp>
- using namespace Catch::Matchers;
- TEST_CASE("JsonObject::begin()/end()") {
- StaticJsonDocument<JSON_OBJECT_SIZE(2)> doc;
- JsonObject obj = doc.to<JsonObject>();
- obj["ab"] = 12;
- obj["cd"] = 34;
- SECTION("NonConstIterator") {
- JsonObject::iterator it = obj.begin();
- REQUIRE(obj.end() != it);
- REQUIRE(it->key() == "ab");
- REQUIRE(12 == it->value());
- ++it;
- REQUIRE(obj.end() != it);
- REQUIRE(it->key() == "cd");
- REQUIRE(34 == it->value());
- ++it;
- REQUIRE(obj.end() == it);
- }
- SECTION("Dereferencing end() is safe") {
- REQUIRE(obj.end()->key().isNull());
- REQUIRE(obj.end()->value().isNull());
- }
- SECTION("null JsonObject") {
- JsonObject null;
- REQUIRE(null.begin() == null.end());
- }
- }
- TEST_CASE("JsonObjectConst::begin()/end()") {
- StaticJsonDocument<JSON_OBJECT_SIZE(2)> doc;
- JsonObject obj = doc.to<JsonObject>();
- obj["ab"] = 12;
- obj["cd"] = 34;
- JsonObjectConst cobj = obj;
- SECTION("Iteration") {
- JsonObjectConst::iterator it = cobj.begin();
- REQUIRE(cobj.end() != it);
- REQUIRE(it->key() == "ab");
- REQUIRE(12 == it->value());
- ++it;
- REQUIRE(cobj.end() != it);
- JsonPairConst pair = *it;
- REQUIRE(pair.key() == "cd");
- REQUIRE(34 == pair.value());
- ++it;
- REQUIRE(cobj.end() == it);
- }
- SECTION("Dereferencing end() is safe") {
- REQUIRE(cobj.end()->key().isNull());
- REQUIRE(cobj.end()->value().isNull());
- }
- SECTION("null JsonObjectConst") {
- JsonObjectConst null;
- REQUIRE(null.begin() == null.end());
- }
- }
|