StaticJsonBufferTests.cpp 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. // Copyright Benoit Blanchon 2014
  2. // MIT License
  3. //
  4. // Arduino JSON library
  5. // https://github.com/bblanchon/ArduinoJson
  6. #include <gtest/gtest.h>
  7. #include <ArduinoJson/JsonObject.hpp>
  8. #include <ArduinoJson/JsonValue.hpp>
  9. #include <ArduinoJson/StaticJsonBuffer.hpp>
  10. using namespace ArduinoJson;
  11. TEST(StaticJsonBuffer, CapacityMatchTemplateParameter) {
  12. StaticJsonBuffer<42> json;
  13. EXPECT_EQ(42, json.capacity());
  14. }
  15. TEST(StaticJsonBuffer, InitialSizeIsZero) {
  16. StaticJsonBuffer<42> json;
  17. EXPECT_EQ(0, json.size());
  18. }
  19. TEST(StaticJsonBuffer, WhenCreateObjectIsCalled_ThenSizeIsIncreasedSizeOfJsonObject) {
  20. StaticJsonBuffer<42> json;
  21. json.createObject();
  22. EXPECT_EQ(sizeof(JsonObject), json.size());
  23. json.createObject();
  24. EXPECT_EQ(sizeof(JsonObject)*2, json.size());
  25. }
  26. TEST(StaticJsonBuffer,
  27. GivenBufferIsFull_WhenCreateObjectIsCalled_ThenSizeDoesNotChange) {
  28. StaticJsonBuffer<sizeof(JsonObject)> json;
  29. json.createObject();
  30. EXPECT_EQ(sizeof(JsonObject), json.size());
  31. json.createObject();
  32. EXPECT_EQ(sizeof(JsonObject), json.size());
  33. }
  34. TEST(StaticJsonBuffer,
  35. WhenCreateObjectIsCalled_ThenAnEmptyJsonObjectIsReturned) {
  36. StaticJsonBuffer<42> json;
  37. JsonObject &obj = json.createObject();
  38. EXPECT_EQ(0, obj.size());
  39. }
  40. TEST(StaticJsonBuffer,
  41. GivenAJsonObject_WhenValuesAreAdded_ThenSizeIsIncreasedAccordingly) {
  42. StaticJsonBuffer<200> json;
  43. JsonObject &obj = json.createObject();
  44. obj["hello"];
  45. EXPECT_EQ(sizeof(JsonObject)+sizeof(Internals::JsonObjectNode), json.size());
  46. obj["world"];
  47. EXPECT_EQ(sizeof(JsonObject) + sizeof(Internals::JsonObjectNode)*2, json.size());
  48. }
  49. TEST(
  50. StaticJsonBuffer,
  51. GivenAJsonObject_WhenSameValuesAreAddedTwice_ThenSizeIsOnlyIncreasedByTwo) {
  52. StaticJsonBuffer<42> json;
  53. JsonObject &obj = json.createObject();
  54. obj["hello"];
  55. size_t sizeBefore = json.size();
  56. obj["hello"];
  57. size_t sizeAfter = json.size();
  58. EXPECT_EQ(sizeBefore, sizeAfter);
  59. }