iterator.cpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // ArduinoJson - arduinojson.org
  2. // Copyright Benoit Blanchon 2014-2023
  3. // MIT License
  4. #include <ArduinoJson.h>
  5. #include <catch.hpp>
  6. using namespace Catch::Matchers;
  7. TEST_CASE("JsonObject::begin()/end()") {
  8. StaticJsonBuffer<JSON_OBJECT_SIZE(2)> jb;
  9. JsonObject& obj = jb.createObject();
  10. obj["ab"] = 12;
  11. obj["cd"] = 34;
  12. SECTION("NonConstIterator") {
  13. JsonObject::iterator it = obj.begin();
  14. REQUIRE(obj.end() != it);
  15. REQUIRE_THAT(it->key, Equals("ab"));
  16. REQUIRE(12 == it->value);
  17. it->key = "a.b";
  18. it->value = 1.2;
  19. ++it;
  20. REQUIRE(obj.end() != it);
  21. REQUIRE_THAT(it->key, Equals("cd"));
  22. REQUIRE(34 == it->value);
  23. it->key = "c.d";
  24. it->value = 3.4;
  25. ++it;
  26. REQUIRE(obj.end() == it);
  27. REQUIRE(2 == obj.size());
  28. REQUIRE(1.2 == obj["a.b"]);
  29. REQUIRE(3.4 == obj["c.d"]);
  30. }
  31. SECTION("ConstIterator") {
  32. const JsonObject& const_object = obj;
  33. JsonObject::const_iterator it = const_object.begin();
  34. REQUIRE(const_object.end() != it);
  35. REQUIRE_THAT(it->key, Equals("ab"));
  36. REQUIRE(12 == it->value);
  37. ++it;
  38. REQUIRE(const_object.end() != it);
  39. REQUIRE_THAT(it->key, Equals("cd"));
  40. REQUIRE(34 == it->value);
  41. ++it;
  42. REQUIRE(const_object.end() == it);
  43. }
  44. }