From d549070fd3102c3db69ffcfc4024d2a1542f3be9 Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Sun, 28 Sep 2014 21:22:20 +0200 Subject: [PATCH] Test that doubles in JsonValue are copied --- srcs/JsonValue.cpp | 6 ++++++ tests/JsonValueTests.cpp | 12 ++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/srcs/JsonValue.cpp b/srcs/JsonValue.cpp index 0fa5454d..58bd8fd7 100644 --- a/srcs/JsonValue.cpp +++ b/srcs/JsonValue.cpp @@ -61,10 +61,16 @@ void JsonValue::operator=(JsonValue const& value) _node->content.asInteger = value._node->content.asInteger; break; + case JSON_DOUBLE_0_DECIMALS: + case JSON_OBJECT: case JSON_ARRAY: case JSON_PROXY: setAsProxyTo(value._node); + + default: + *_node = *value._node; + break; } } diff --git a/tests/JsonValueTests.cpp b/tests/JsonValueTests.cpp index 0392968b..a1a7c84a 100644 --- a/tests/JsonValueTests.cpp +++ b/tests/JsonValueTests.cpp @@ -59,12 +59,20 @@ TEST_F(JsonValueTests, CanStoreObject) EXPECT_EQ(innerObject1, (JsonObject) jsonValue1); } -TEST_F(JsonValueTests, CanCopyInteger) +TEST_F(JsonValueTests, IntegerValuesAreCopied) { jsonValue1 = 123; jsonValue2 = jsonValue1; jsonValue1 = 456; - EXPECT_EQ(456, (int) jsonValue1); EXPECT_EQ(123, (int) jsonValue2); +} + +TEST_F(JsonValueTests, DoubleValuesAreCopied) +{ + jsonValue1 = 123.45; + jsonValue2 = jsonValue1; + jsonValue1 = 456.78; + + EXPECT_EQ(123.45, (double) jsonValue2); } \ No newline at end of file