iterator.cpp 1.3 KB

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