diff --git a/include/ArduinoJson/DynamicJsonBuffer.hpp b/include/ArduinoJson/DynamicJsonBuffer.hpp index 5c42a02a..3587b71d 100644 --- a/include/ArduinoJson/DynamicJsonBuffer.hpp +++ b/include/ArduinoJson/DynamicJsonBuffer.hpp @@ -15,11 +15,16 @@ namespace ArduinoJson { // more suitable for embedded systems. class DynamicJsonBuffer : public JsonBuffer { public: - explicit DynamicJsonBuffer() {} + explicit DynamicJsonBuffer() : _size(0) {} - size_t size() const { return 0; } + size_t size() const { return _size; } protected: - virtual void* alloc(size_t bytes) { return NULL; } + virtual void* alloc(size_t bytes) { + _size += bytes; + return NULL; + } + + size_t _size; }; } diff --git a/test/DynamicJsonBuffer_Basic_Tests.cpp b/test/DynamicJsonBuffer_Basic_Tests.cpp index a506d003..8b682ab7 100644 --- a/test/DynamicJsonBuffer_Basic_Tests.cpp +++ b/test/DynamicJsonBuffer_Basic_Tests.cpp @@ -19,3 +19,10 @@ class DynamicJsonBuffer_Basic_Tests : public testing::Test { TEST_F(DynamicJsonBuffer_Basic_Tests, InitialSizeIsZero) { ASSERT_EQ(0, buffer.size()); } + +TEST_F(DynamicJsonBuffer_Basic_Tests, GrowsAfterAlloc) { + buffer.alloc(100); + ASSERT_EQ(100, buffer.size()); + buffer.alloc(100); + ASSERT_EQ(200, buffer.size()); +}