StaticJsonBuffer_CreateObject_Tests.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. TEST(StaticJsonBuffer_CreateObject_Tests, GrowsWithObject) {
  9. StaticJsonBuffer<JSON_OBJECT_SIZE(3)> json;
  10. JsonObject &obj = json.createObject();
  11. ASSERT_EQ(JSON_OBJECT_SIZE(0), json.size());
  12. obj["hello"];
  13. ASSERT_EQ(JSON_OBJECT_SIZE(0), json.size());
  14. obj["hello"] = 1;
  15. ASSERT_EQ(JSON_OBJECT_SIZE(1), json.size());
  16. obj["world"] = 2;
  17. ASSERT_EQ(JSON_OBJECT_SIZE(2), json.size());
  18. obj["world"] = 3; // <- same key, should not grow
  19. ASSERT_EQ(JSON_OBJECT_SIZE(2), json.size());
  20. }
  21. TEST(StaticJsonBuffer_CreateObject_Tests, SucceedWhenBigEnough) {
  22. StaticJsonBuffer<JSON_OBJECT_SIZE(0)> json;
  23. JsonObject &object = json.createObject();
  24. ASSERT_TRUE(object.success());
  25. }
  26. TEST(StaticJsonBuffer_CreateObject_Tests, FailsWhenTooSmall) {
  27. StaticJsonBuffer<JSON_OBJECT_SIZE(0) - 1> json;
  28. JsonObject &object = json.createObject();
  29. ASSERT_FALSE(object.success());
  30. }
  31. TEST(StaticJsonBuffer_CreateObject_Tests, ObjectDoesntGrowWhenFull) {
  32. StaticJsonBuffer<JSON_OBJECT_SIZE(1)> json;
  33. JsonObject &obj = json.createObject();
  34. obj["hello"] = 1;
  35. obj["world"] = 2;
  36. ASSERT_EQ(JSON_OBJECT_SIZE(1), json.size());
  37. }