iterator.cpp 840 B

123456789101112131415161718192021222324252627282930313233343536
  1. // ArduinoJson - arduinojson.org
  2. // Copyright Benoit Blanchon 2014-2019
  3. // MIT License
  4. #include <ArduinoJson.h>
  5. #include <catch.hpp>
  6. template <typename TArray>
  7. static void run_iterator_test() {
  8. StaticJsonDocument<JSON_ARRAY_SIZE(2)> doc;
  9. JsonArray tmp = doc.to<JsonArray>();
  10. tmp.add(12);
  11. tmp.add(34);
  12. TArray array = tmp;
  13. typename TArray::iterator it = array.begin();
  14. typename TArray::iterator end = array.end();
  15. REQUIRE(end != it);
  16. REQUIRE(12 == it->template as<int>());
  17. REQUIRE(12 == static_cast<int>(*it));
  18. ++it;
  19. REQUIRE(end != it);
  20. REQUIRE(34 == it->template as<int>());
  21. REQUIRE(34 == static_cast<int>(*it));
  22. ++it;
  23. REQUIRE(end == it);
  24. }
  25. TEST_CASE("JsonArray::begin()/end()") {
  26. run_iterator_test<JsonArray>();
  27. }
  28. TEST_CASE("JsonArrayConst::begin()/end()") {
  29. run_iterator_test<JsonArrayConst>();
  30. }