Files
ArduinoJson/tests/JsonObject_Serialization_Tests.cpp

158 lines
3.4 KiB
C++
Raw Normal View History

2014-09-30 16:31:22 +02:00
#include <gtest/gtest.h>
2014-10-14 09:50:58 +02:00
#include <JsonArray.h>
2014-09-30 16:31:22 +02:00
#include <JsonObject.h>
#include <JsonValue.h>
2014-09-30 16:31:22 +02:00
#include <StaticJsonBuffer.h>
2014-10-05 14:40:03 +02:00
class JsonObject_Serialization_Tests : public testing::Test
2014-09-30 16:31:22 +02:00
{
protected:
virtual void SetUp()
{
object = json.createObject();
}
void outputMustBe(const char* expected)
2014-09-30 16:31:22 +02:00
{
char actual[256];
2014-09-30 16:43:10 +02:00
int result = object.printTo(actual, sizeof(actual));
2014-09-30 16:31:22 +02:00
EXPECT_STREQ(expected, actual);
2014-09-30 16:43:10 +02:00
EXPECT_EQ(strlen(expected), result);
2014-09-30 16:31:22 +02:00
}
JsonObject object;
StaticJsonBuffer<5> json;
2014-09-30 16:31:22 +02:00
};
2014-10-05 14:40:03 +02:00
TEST_F(JsonObject_Serialization_Tests, EmptyObject)
2014-09-30 16:31:22 +02:00
{
outputMustBe("{}");
}
2014-10-05 14:40:03 +02:00
TEST_F(JsonObject_Serialization_Tests, OneString)
{
object["key"] = "value";
outputMustBe("{\"key\":\"value\"}");
}
2014-10-05 14:40:03 +02:00
TEST_F(JsonObject_Serialization_Tests, TwoStrings)
{
object["key1"] = "value1";
object["key2"] = "value2";
outputMustBe("{\"key1\":\"value1\",\"key2\":\"value2\"}");
}
2014-10-05 14:40:03 +02:00
TEST_F(JsonObject_Serialization_Tests, RemoveFirst)
{
object["key1"] = "value1";
object["key2"] = "value2";
object.remove("key1");
outputMustBe("{\"key2\":\"value2\"}");
}
2014-10-05 14:40:03 +02:00
TEST_F(JsonObject_Serialization_Tests, RemoveLast)
{
object["key1"] = "value1";
object["key2"] = "value2";
object.remove("key2");
outputMustBe("{\"key1\":\"value1\"}");
}
2014-10-05 14:40:03 +02:00
TEST_F(JsonObject_Serialization_Tests, RemoveUnexistingKey)
{
object["key1"] = "value1";
object["key2"] = "value2";
object.remove("key3");
outputMustBe("{\"key1\":\"value1\",\"key2\":\"value2\"}");
}
2014-10-05 14:40:03 +02:00
TEST_F(JsonObject_Serialization_Tests, ReplaceExistingKey)
{
object["key"] = "value1";
object["key"] = "value2";
outputMustBe("{\"key\":\"value2\"}");
}
2014-10-05 14:40:03 +02:00
TEST_F(JsonObject_Serialization_Tests, OneStringOverCapacity)
{
object["key1"] = "value1";
object["key2"] = "value2";
object["key3"] = "value3";
outputMustBe("{\"key1\":\"value1\",\"key2\":\"value2\"}");
}
2014-09-30 17:24:14 +02:00
2014-10-05 14:40:03 +02:00
TEST_F(JsonObject_Serialization_Tests, OneInteger)
{
object["key"] = 1;
outputMustBe("{\"key\":1}");
}
2014-09-30 17:32:45 +02:00
2014-10-05 14:40:03 +02:00
TEST_F(JsonObject_Serialization_Tests, OneDoubleFourDigits)
{
2014-09-30 17:32:45 +02:00
object["key"].set(3.14159265358979323846, 4);
outputMustBe("{\"key\":3.1416}");
}
2014-10-05 14:40:03 +02:00
TEST_F(JsonObject_Serialization_Tests, OneDoubleDefaultDigits)
{
object["key"] = 3.14159265358979323846;
outputMustBe("{\"key\":3.14}");
}
2014-09-30 17:56:28 +02:00
2014-10-05 14:40:03 +02:00
TEST_F(JsonObject_Serialization_Tests, OneNull)
{
object["key"] = (char*) 0;
outputMustBe("{\"key\":null}");
}
2014-10-05 14:40:03 +02:00
TEST_F(JsonObject_Serialization_Tests, OneTrue)
{
object["key"] = true;
outputMustBe("{\"key\":true}");
}
2014-10-05 14:40:03 +02:00
TEST_F(JsonObject_Serialization_Tests, OneFalse)
{
object["key"] = false;
outputMustBe("{\"key\":false}");
}
TEST_F(JsonObject_Serialization_Tests, OneEmptyNestedArrayViaProxy)
{
2014-10-14 09:50:58 +02:00
JsonArray nestedArray = json.createArray();
object["key"] = nestedArray;
outputMustBe("{\"key\":[]}");
}
TEST_F(JsonObject_Serialization_Tests, OneEmptyNestedObjectViaProxy)
{
2014-10-14 09:50:58 +02:00
JsonObject nestedArray = json.createObject();
object["key"] = nestedArray;
outputMustBe("{\"key\":{}}");
}
TEST_F(JsonObject_Serialization_Tests, OneEmptyNestedObject)
{
object.createNestedObject("key");
outputMustBe("{\"key\":{}}");
}
TEST_F(JsonObject_Serialization_Tests, OneEmptyNestedArray)
{
object.createNestedArray("key");
outputMustBe("{\"key\":[]}");
2014-10-01 15:47:32 +02:00
}