diff --git a/srcs/StaticJsonBuffer.h b/srcs/StaticJsonBuffer.h index ac717d52..dc59642d 100644 --- a/srcs/StaticJsonBuffer.h +++ b/srcs/StaticJsonBuffer.h @@ -14,7 +14,12 @@ public: virtual ~StaticJsonBuffer() {} - /*JsonObject*/void createObject() { _size++; } + /*JsonObject*/ + void createObject() + { + if (_size < CAPACITY) + _size++; + } int capacity() { diff --git a/tests/StaticJsonBufferTests.cpp b/tests/StaticJsonBufferTests.cpp index 9a06c9e3..7dd1ed52 100644 --- a/tests/StaticJsonBufferTests.cpp +++ b/tests/StaticJsonBufferTests.cpp @@ -22,4 +22,15 @@ TEST(StaticJsonBuffer, WhenCreateObjectIsCalled_ThenSizeIsIncreasedByOne) json.createObject(); EXPECT_EQ(2, json.size()); +} + +TEST(StaticJsonBuffer, GivenBufferIsFull_WhenCreateObjectIsCalled_ThenSizeDoesNotChange) +{ + StaticJsonBuffer<1> json; + + json.createObject(); + EXPECT_EQ(1, json.size()); + + json.createObject(); + EXPECT_EQ(1, json.size()); } \ No newline at end of file