Added StaticJsonDocument and DynamicJsonDocument.

Removed StaticJsonArray and DynamicJsonArray.
Removed StaticJsonObject and DynamicJsonObject.
Removed StaticJsonVariant and DynamicJsonVariant.
This commit is contained in:
Benoit Blanchon
2018-04-17 21:27:45 +02:00
parent a13b9e8bdc
commit 1feb92679d
100 changed files with 1696 additions and 1844 deletions

View File

@ -192,7 +192,8 @@ TEST_CASE("JsonVariant::as()") {
}
SECTION("ObjectAsString") {
DynamicJsonObject obj;
DynamicJsonDocument doc;
JsonObject& obj = doc.to<JsonObject>();
obj["key"] = "value";
@ -201,7 +202,8 @@ TEST_CASE("JsonVariant::as()") {
}
SECTION("ArrayAsString") {
DynamicJsonArray arr;
DynamicJsonDocument doc;
JsonArray& arr = doc.to<JsonArray>();
arr.add(4);
arr.add(2);
@ -210,7 +212,8 @@ TEST_CASE("JsonVariant::as()") {
}
SECTION("ArrayAsJsonArray") {
DynamicJsonArray arr;
DynamicJsonDocument doc;
JsonArray& arr = doc.to<JsonArray>();
JsonVariant variant = arr;
REQUIRE(&arr == &variant.as<JsonArray&>());
@ -218,7 +221,8 @@ TEST_CASE("JsonVariant::as()") {
}
SECTION("ObjectAsJsonObject") {
DynamicJsonObject obj;
DynamicJsonDocument doc;
JsonObject& obj = doc.to<JsonObject>();
JsonVariant variant = obj;
REQUIRE(&obj == &variant.as<JsonObject&>());

View File

@ -97,8 +97,9 @@ TEST_CASE("JsonVariant comparisons") {
}
SECTION("StringLiteral") {
DynamicJsonVariant variant;
deserializeJson(variant, "\"hello\"");
DynamicJsonDocument doc;
deserializeJson(doc, "\"hello\"");
JsonVariant variant = doc.as<JsonVariant>();
REQUIRE(variant == "hello");
REQUIRE_FALSE(variant != "hello");
@ -114,8 +115,7 @@ TEST_CASE("JsonVariant comparisons") {
}
SECTION("String") {
DynamicJsonVariant variant;
deserializeJson(variant, "\"hello\"");
JsonVariant variant = "hello";
REQUIRE(variant == std::string("hello"));
REQUIRE_FALSE(variant != std::string("hello"));
@ -179,7 +179,10 @@ TEST_CASE("JsonVariant comparisons") {
}
SECTION("ArrayInVariant") {
DynamicJsonArray array1, array2;
DynamicJsonDocument doc1;
JsonArray& array1 = doc1.to<JsonArray>();
DynamicJsonDocument doc2;
JsonArray& array2 = doc2.to<JsonArray>();
JsonVariant variant1 = array1;
JsonVariant variant2 = array1;
@ -193,8 +196,10 @@ TEST_CASE("JsonVariant comparisons") {
}
SECTION("ObjectInVariant") {
DynamicJsonObject obj1;
DynamicJsonObject obj2;
DynamicJsonDocument doc1;
JsonObject& obj1 = doc1.to<JsonObject>();
DynamicJsonDocument doc2;
JsonObject& obj2 = doc2.to<JsonObject>();
JsonVariant variant1 = obj1;
JsonVariant variant2 = obj1;
@ -208,8 +213,11 @@ TEST_CASE("JsonVariant comparisons") {
}
SECTION("VariantsOfDifferentTypes") {
DynamicJsonObject obj;
DynamicJsonArray arr;
DynamicJsonDocument doc1;
JsonObject& obj = doc1.to<JsonObject>();
DynamicJsonDocument doc2;
JsonArray& arr = doc2.to<JsonArray>();
JsonVariant variants[] = {
true, 42, 666.667, "hello", arr, obj,
};

View File

@ -38,11 +38,12 @@ TEST_CASE("JsonVariant copy") {
_variant2 = _variant1;
_variant1 = "world";
REQUIRE(std::string("hello") == _variant2.as<const char *>());
REQUIRE(std::string("hello") == _variant2.as<const char*>());
}
SECTION("ObjectsAreCopiedByReference") {
DynamicJsonObject object;
DynamicJsonDocument doc;
JsonObject& object = doc.to<JsonObject>();
_variant1 = object;
@ -52,7 +53,8 @@ TEST_CASE("JsonVariant copy") {
}
SECTION("ArraysAreCopiedByReference") {
DynamicJsonArray array;
DynamicJsonDocument doc;
JsonArray& array = doc.to<JsonArray>();
_variant1 = array;

View File

@ -69,10 +69,9 @@ void checkIsString(JsonVariant var) {
}
TEST_CASE("JsonVariant::is()") {
DynamicJsonBuffer jsonBuffer;
SECTION("JsonArray") {
DynamicJsonArray array;
DynamicJsonDocument doc;
JsonArray& array = doc.to<JsonArray>();
checkIsArray(array);
}

View File

@ -122,7 +122,8 @@ TEST_CASE("JsonVariant set()/get()") {
#endif
SECTION("CanStoreObject") {
DynamicJsonObject object;
DynamicJsonDocument doc;
JsonObject &object = doc.to<JsonObject>();
checkReference<JsonObject>(object);
}

View File

@ -7,7 +7,8 @@
TEST_CASE("JsonVariant::operator[]") {
SECTION("Array") {
DynamicJsonArray array;
DynamicJsonDocument doc;
JsonArray& array = doc.to<JsonArray>();
array.add("element at index 0");
array.add("element at index 1");
@ -24,7 +25,8 @@ TEST_CASE("JsonVariant::operator[]") {
}
SECTION("Object") {
DynamicJsonObject object;
DynamicJsonDocument doc;
JsonObject& object = doc.to<JsonObject>();
object["a"] = "element at key \"a\"";
object["b"] = "element at key \"b\"";
@ -52,7 +54,8 @@ TEST_CASE("JsonVariant::operator[]") {
}
SECTION("ObjectSetValue") {
DynamicJsonObject obj;
DynamicJsonDocument doc;
JsonObject& obj = doc.to<JsonObject>();
JsonVariant var = obj;
var["hello"] = "world";
REQUIRE(1 == var.size());
@ -60,16 +63,19 @@ TEST_CASE("JsonVariant::operator[]") {
}
SECTION("ArraySetValue") {
DynamicJsonVariant var;
deserializeJson(var, "[\"hello\"]");
DynamicJsonDocument doc;
JsonArray& arr = doc.to<JsonArray>();
arr.add("hello");
JsonVariant var = arr;
var[0] = "world";
REQUIRE(1 == var.size());
REQUIRE(std::string("world") == var[0]);
}
SECTION("NestedObjectSetValue") {
DynamicJsonVariant var;
deserializeJson(var, "[{}]");
DynamicJsonDocument doc;
deserializeJson(doc, "[{}]");
JsonVariant var = doc.as<JsonVariant>();
var[0]["hello"] = "world";
REQUIRE(1 == var.size());
REQUIRE(1 == var[0].size());

View File

@ -17,14 +17,16 @@ TEST_CASE("JsonVariant::success()") {
}
SECTION("ReturnsTrue_WhenEmptyArray") {
DynamicJsonArray array;
DynamicJsonDocument doc;
JsonArray& array = doc.to<JsonArray>();
JsonVariant variant = array;
REQUIRE(true == variant.success());
}
SECTION("ReturnsTrue_WhenEmptyObject") {
DynamicJsonObject obj;
DynamicJsonDocument doc;
JsonObject& obj = doc.to<JsonObject>();
JsonVariant variant = obj;
REQUIRE(true == variant.success());