From 99a785179d5d13aac2717d758737595c27edcd5a Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Sun, 5 Oct 2014 15:02:40 +0200 Subject: [PATCH] Test that JsonArray can contain doubles --- srcs/JsonArray.cpp | 27 +++++++++++++++++++++++++++ srcs/JsonArray.h | 15 ++++----------- srcs/JsonContainer.cpp | 2 +- tests/JsonArray_Container_Tests.cpp | 4 ++-- 4 files changed, 34 insertions(+), 14 deletions(-) diff --git a/srcs/JsonArray.cpp b/srcs/JsonArray.cpp index 58f29963..1752c0d2 100644 --- a/srcs/JsonArray.cpp +++ b/srcs/JsonArray.cpp @@ -11,4 +11,31 @@ JsonValue JsonArray::operator[](int index) const } return JsonValue(); +} + +void JsonArray::add(char const* value) +{ + JsonNode* node = createNode(JSON_STRING); + if (!node) return; + + node->content.asString = value; + addChild(node); +} + +void JsonArray::add(double value, int decimals) +{ + JsonNode* node = createNode((JsonNodeType)(JSON_DOUBLE_0_DECIMALS + decimals)); + if (!node) return; + + node->content.asDouble = value; + addChild(node); +} + +void JsonArray::add(long value) +{ + JsonNode* node = createNode(JSON_INTEGER); + if (!node) return; + + node->content.asInteger = value; + addChild(node); } \ No newline at end of file diff --git a/srcs/JsonArray.h b/srcs/JsonArray.h index a5c65cd0..b453534b 100644 --- a/srcs/JsonArray.h +++ b/srcs/JsonArray.h @@ -16,16 +16,9 @@ public: JsonValue operator[](int index) const; - template - void add(T value) - { - JsonNode* node = createNode(JSON_UNDEFINED); - if (!node) return; - - JsonValue jsonValue(node); - jsonValue = value; - - addChild(node); - } + void add(const char* value); + void add(double value, int decimals=2); + void add(int value) { add((long) value); } + void add(long value); }; diff --git a/srcs/JsonContainer.cpp b/srcs/JsonContainer.cpp index d992885c..33ef4fa7 100644 --- a/srcs/JsonContainer.cpp +++ b/srcs/JsonContainer.cpp @@ -19,7 +19,7 @@ size_t JsonContainer::printTo(Print& p) const JsonNode* JsonContainer::createNode(JsonNodeType type) { JsonBuffer* buffer = _node->content.asContainer.buffer; - return buffer->createNode(JSON_UNDEFINED); + return buffer->createNode(type); } bool JsonContainer::checkNodeType(JsonNodeType expectedType) diff --git a/tests/JsonArray_Container_Tests.cpp b/tests/JsonArray_Container_Tests.cpp index d2e67330..0418be33 100644 --- a/tests/JsonArray_Container_Tests.cpp +++ b/tests/JsonArray_Container_Tests.cpp @@ -36,7 +36,7 @@ TEST_F(JsonArray_Container_Tests, CanStoreIntegers) EXPECT_EQ(123, (int) array[0]); EXPECT_EQ(456, (int) array[1]); } -/* + TEST_F(JsonArray_Container_Tests, CanStoreDoubles) { array.add(123.45); @@ -45,7 +45,7 @@ TEST_F(JsonArray_Container_Tests, CanStoreDoubles) EXPECT_EQ(123.45, (double) array[0]); EXPECT_EQ(456.78, (double) array[1]); } - +/* TEST_F(JsonArray_Container_Tests, CanStoreBooleans) { array.add(true);