iterator.cpp 833 B

123456789101112131415161718192021222324252627282930313233343536
  1. // ArduinoJson - https://arduinojson.org
  2. // Copyright © 2014-2024, Benoit BLANCHON
  3. // MIT License
  4. #include <ArduinoJson.h>
  5. #include <catch.hpp>
  6. TEST_CASE("JsonObject::begin()/end()") {
  7. JsonDocument doc;
  8. JsonObject obj = doc.to<JsonObject>();
  9. obj["ab"] = 12;
  10. obj["cd"] = 34;
  11. SECTION("NonConstIterator") {
  12. JsonObject::iterator it = obj.begin();
  13. REQUIRE(obj.end() != it);
  14. REQUIRE(it->key() == "ab");
  15. REQUIRE(12 == it->value());
  16. ++it;
  17. REQUIRE(obj.end() != it);
  18. REQUIRE(it->key() == "cd");
  19. REQUIRE(34 == it->value());
  20. ++it;
  21. REQUIRE(obj.end() == it);
  22. }
  23. SECTION("Dereferencing end() is safe") {
  24. REQUIRE(obj.end()->key().isNull());
  25. REQUIRE(obj.end()->value().isNull());
  26. }
  27. SECTION("null JsonObject") {
  28. JsonObject null;
  29. REQUIRE(null.begin() == null.end());
  30. }
  31. }