StaticJsonBuffer_Object_Tests.cpp 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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/StaticJsonBuffer.hpp>
  9. using namespace ArduinoJson;
  10. const size_t SIZEOF_ONE_OBJECT = JSON_OBJECT_SIZE(0);
  11. const size_t SIZEOF_TWO_OBJECTS = 2 * SIZEOF_ONE_OBJECT;
  12. const size_t SIZEOF_OBJECT_WITH_ONE_VALUE = JSON_OBJECT_SIZE(1);
  13. const size_t SIZEOF_OBJECT_WITH_TWO_VALUES = JSON_OBJECT_SIZE(2);
  14. TEST(StaticJsonBuffer_Object_Tests,
  15. WhenCreateObjectIsCalled_ThenSizeIsIncreasedSizeOfJsonObject) {
  16. StaticJsonBuffer<SIZEOF_TWO_OBJECTS> json;
  17. json.createObject();
  18. json.createObject();
  19. EXPECT_EQ(SIZEOF_TWO_OBJECTS, json.size());
  20. }
  21. TEST(StaticJsonBuffer_Object_Tests,
  22. GivenBufferIsFull_WhenCreateObjectIsCalled_ThenSizeDoesNotChange) {
  23. StaticJsonBuffer<SIZEOF_ONE_OBJECT> json;
  24. json.createObject();
  25. json.createObject();
  26. EXPECT_EQ(SIZEOF_ONE_OBJECT, json.size());
  27. }
  28. TEST(StaticJsonBuffer_Object_Tests,
  29. GivenEnoughSpace_WhenCreateObjectIsCalled_ThenSuccessIsTrue) {
  30. StaticJsonBuffer<SIZEOF_ONE_OBJECT> json;
  31. JsonObject &object = json.createObject();
  32. EXPECT_TRUE(object.success());
  33. }
  34. TEST(StaticJsonBuffer_Object_Tests,
  35. GivenNotEnoughSpace_WhenCreateObjectIsCalled_ThenSuccessIsFalse) {
  36. StaticJsonBuffer<SIZEOF_ONE_OBJECT - 1> json;
  37. JsonObject &object = json.createObject();
  38. EXPECT_FALSE(object.success());
  39. }
  40. TEST(StaticJsonBuffer_Object_Tests,
  41. WhenCreateObjectIsCalled_ThenAnEmptyJsonObjectIsReturned) {
  42. StaticJsonBuffer<SIZEOF_ONE_OBJECT> json;
  43. JsonObject &obj = json.createObject();
  44. EXPECT_EQ(0, obj.size());
  45. }
  46. TEST(StaticJsonBuffer_Object_Tests,
  47. GivenAJsonObject_WhenValuesAreAdded_ThenSizeIsIncreasedAccordingly) {
  48. StaticJsonBuffer<SIZEOF_OBJECT_WITH_TWO_VALUES> json;
  49. JsonObject &obj = json.createObject();
  50. obj["hello"];
  51. obj["world"];
  52. EXPECT_EQ(SIZEOF_OBJECT_WITH_TWO_VALUES, json.size());
  53. }
  54. TEST(
  55. StaticJsonBuffer_Object_Tests,
  56. GivenAJsonObject_WhenSameValuesAreAddedTwice_ThenSizeIsOnlyIncreasedByTwo) {
  57. StaticJsonBuffer<SIZEOF_OBJECT_WITH_TWO_VALUES> json;
  58. JsonObject &obj = json.createObject();
  59. obj["hello"];
  60. obj["hello"];
  61. EXPECT_EQ(SIZEOF_OBJECT_WITH_ONE_VALUE, json.size());
  62. }