From 91649df5937b02672b3cdd074aea2ed2565ff5b4 Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Sat, 27 Sep 2014 11:42:27 +0200 Subject: [PATCH] Test that CreateObject() returns an empty JsonObject --- srcs/JsonObject.h | 42 +++++++++++++++++++++++++++++++++ srcs/StaticJsonBuffer.h | 6 +++-- srcs/srcs.vcxproj | 1 + srcs/srcs.vcxproj.filters | 3 +++ tests/StaticJsonBufferTests.cpp | 8 +++++++ 5 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 srcs/JsonObject.h diff --git a/srcs/JsonObject.h b/srcs/JsonObject.h new file mode 100644 index 00000000..e0f53715 --- /dev/null +++ b/srcs/JsonObject.h @@ -0,0 +1,42 @@ +#pragma once + +class JsonBuffer; +struct JsonNode; +class JsonValue; + +class JsonObject +{ +// friend class JsonValue; +// +//public: +// JsonObject(JsonBuffer& buffer, JsonNode& node) +// : _buffer(buffer), _node(node) +// { +// } +// +// JsonObject createObject(const char* key) +// { +// JsonObject innerObject = _buffer.createObject(); +// addNodeAt(key, innerObject._node); +// return innerObject; +// } +// +// JsonValue& operator[](const char* key); + +public: + + int size() + { + return 0; + } + +//private: +// JsonBuffer& _buffer; +// JsonNode& _node; +// +// void addNodeAt(char const* key, JsonNode& node); +// JsonNode& getNodeAt(const char* key); +// +// // TODO: pull up +// void appendChild(JsonNode& newChild); +}; \ No newline at end of file diff --git a/srcs/StaticJsonBuffer.h b/srcs/StaticJsonBuffer.h index dc59642d..3b01b035 100644 --- a/srcs/StaticJsonBuffer.h +++ b/srcs/StaticJsonBuffer.h @@ -1,6 +1,7 @@ #pragma once #include "JsonBuffer.h" +#include "JsonObject.h" template class StaticJsonBuffer //: public JsonBuffer @@ -14,11 +15,12 @@ public: virtual ~StaticJsonBuffer() {} - /*JsonObject*/ - void createObject() + JsonObject createObject() { if (_size < CAPACITY) _size++; + + return JsonObject(); } int capacity() diff --git a/srcs/srcs.vcxproj b/srcs/srcs.vcxproj index 220e0e89..4f9e2e09 100644 --- a/srcs/srcs.vcxproj +++ b/srcs/srcs.vcxproj @@ -65,6 +65,7 @@ + diff --git a/srcs/srcs.vcxproj.filters b/srcs/srcs.vcxproj.filters index 16cf8ca4..a4b4b6a1 100644 --- a/srcs/srcs.vcxproj.filters +++ b/srcs/srcs.vcxproj.filters @@ -18,5 +18,8 @@ Header Files + + Header Files + \ No newline at end of file diff --git a/tests/StaticJsonBufferTests.cpp b/tests/StaticJsonBufferTests.cpp index 7dd1ed52..2550cc7c 100644 --- a/tests/StaticJsonBufferTests.cpp +++ b/tests/StaticJsonBufferTests.cpp @@ -33,4 +33,12 @@ TEST(StaticJsonBuffer, GivenBufferIsFull_WhenCreateObjectIsCalled_ThenSizeDoesNo json.createObject(); EXPECT_EQ(1, json.size()); +} + +TEST(StaticJsonBuffer, WhenWhenCreateObjectIsCalled_ThenAnEmptyJsonObjectIsReturned) +{ + StaticJsonBuffer<42> json; + + JsonObject obj = json.createObject(); + EXPECT_EQ(0, obj.size()); } \ No newline at end of file