Test that a double can be stored in a JsonObject

This commit is contained in:
Benoit Blanchon
2014-09-27 14:59:02 +02:00
parent 71fd2de675
commit 5fa446d3f5
5 changed files with 31 additions and 10 deletions

View File

@ -24,6 +24,7 @@ struct JsonNode
union union
{ {
double asDouble;
int asInteger; int asInteger;
struct struct

View File

@ -2,7 +2,7 @@
#include "JsonObject.h" #include "JsonObject.h"
#include "JsonValue.h" #include "JsonValue.h"
#include "JsonNode.h" #include "JsonNode.h"
#include <string.h> #include <string.h> // for strcmp
//JsonValue& JsonObject::operator[](char const* key) //JsonValue& JsonObject::operator[](char const* key)
//{ //{

View File

@ -2,10 +2,13 @@
#include "JsonNode.h" #include "JsonNode.h"
#include "JsonValue.h" #include "JsonValue.h"
//void JsonValue::operator=(JsonObject const& object) void JsonValue::operator=(double value)
//{ {
// _node = object._node; if (!_node) return;
//}
_node->type = JSON_DOUBLE_2_DECIMALS;
_node->content.asDouble = value;
}
void JsonValue::operator=(int value) void JsonValue::operator=(int value)
{ {
@ -15,10 +18,12 @@ void JsonValue::operator=(int value)
_node->content.asInteger = value; _node->content.asInteger = value;
} }
//JsonValue::operator JsonObject() JsonValue::operator double()
//{ {
// return JsonObject(_buffer, _node); if (!_node || _node->type < JSON_DOUBLE_0_DECIMALS) return 0;
//}
return _node->content.asDouble;
}
JsonValue::operator int() JsonValue::operator int()
{ {

View File

@ -14,9 +14,11 @@ public:
} }
// void operator=(const JsonObject& object); // void operator=(const JsonObject& object);
void operator=(double);
void operator=(int); void operator=(int);
// operator JsonObject(); // operator JsonObject();
operator double();
operator int(); operator int();
private: private:

View File

@ -28,7 +28,7 @@ TEST(JsonObjectTests, WhenTheSameValueIsAddedTwice_ThenSizeIsOnlyIncreasedByOne)
EXPECT_EQ(1, object.size()); EXPECT_EQ(1, object.size());
} }
TEST(JsonObjectTests, WhenAnIntegerIsStore_TheSameIntegerIsRetreived) TEST(JsonObjectTests, GivenAnIntegerStored_WhenRetreivingTheValue_ThenTheValueIsTheSame)
{ {
StaticJsonBuffer<42> json; StaticJsonBuffer<42> json;
@ -39,4 +39,17 @@ TEST(JsonObjectTests, WhenAnIntegerIsStore_TheSameIntegerIsRetreived)
EXPECT_EQ(123, (int) object["hello"]); EXPECT_EQ(123, (int) object["hello"]);
EXPECT_EQ(456, (int) object["world"]); EXPECT_EQ(456, (int) object["world"]);
}
TEST(JsonObjectTests, GivenAnDoubleStored_WhenRetreivingTheValue_ThenTheValueIsTheSame)
{
StaticJsonBuffer<42> json;
JsonObject object = json.createObject();
object["hello"] = 123.45;
object["world"] = 456.78;
EXPECT_EQ(123.45, (double) object["hello"]);
EXPECT_EQ(456.78, (double) object["world"]);
} }