JsonObject_Iterator_Tests.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. // Copyright Benoit Blanchon 2014-2015
  2. // MIT License
  3. //
  4. // Arduino JSON library
  5. // https://github.com/bblanchon/ArduinoJson
  6. #include <gtest/gtest.h>
  7. #include <ArduinoJson.h>
  8. #include "Printers.hpp"
  9. class JsonObject_Iterator_Test : public testing::Test {
  10. public:
  11. JsonObject_Iterator_Test() : _object(_buffer.createObject()) {
  12. _object["ab"] = 12;
  13. _object["cd"] = 34;
  14. }
  15. protected:
  16. StaticJsonBuffer<JSON_OBJECT_SIZE(2)> _buffer;
  17. JsonObject& _object;
  18. };
  19. TEST_F(JsonObject_Iterator_Test, NonConstIterator) {
  20. JsonObject::iterator it = _object.begin();
  21. ASSERT_NE(_object.end(), it);
  22. EXPECT_STREQ("ab", it->key);
  23. EXPECT_EQ(12, it->value);
  24. it->key = "a.b";
  25. it->value = 1.2;
  26. ++it;
  27. ASSERT_NE(_object.end(), it);
  28. EXPECT_STREQ("cd", it->key);
  29. EXPECT_EQ(34, it->value);
  30. it->key = "c.d";
  31. it->value = 3.4;
  32. ++it;
  33. ASSERT_EQ(_object.end(), it);
  34. ASSERT_EQ(2, _object.size());
  35. EXPECT_EQ(1.2, _object["a.b"]);
  36. EXPECT_EQ(3.4, _object["c.d"]);
  37. }
  38. TEST_F(JsonObject_Iterator_Test, ConstIterator) {
  39. const JsonObject& const_object = _object;
  40. JsonObject::const_iterator it = const_object.begin();
  41. ASSERT_NE(const_object.end(), it);
  42. EXPECT_STREQ("ab", it->key);
  43. EXPECT_EQ(12, it->value);
  44. ++it;
  45. ASSERT_NE(const_object.end(), it);
  46. EXPECT_STREQ("cd", it->key);
  47. EXPECT_EQ(34, it->value);
  48. ++it;
  49. ASSERT_EQ(const_object.end(), it);
  50. }