forked from bblanchon/ArduinoJson
Don't use JsonBuffer to create or parse objects and arrays.
* Added DynamicJsonArray and StaticJsonArray * Added DynamicJsonObject and StaticJsonObject * Added DynamicJsonVariant and StaticJsonVariant * Added deserializeJson() * Removed JsonBuffer::parseArray(), parseObject() and parse() * Removed JsonBuffer::createArray() and createObject()
This commit is contained in:
@ -192,9 +192,8 @@ TEST_CASE("JsonVariant::as()") {
|
||||
}
|
||||
|
||||
SECTION("ObjectAsString") {
|
||||
DynamicJsonBuffer buffer;
|
||||
DynamicJsonObject obj;
|
||||
|
||||
JsonObject& obj = buffer.createObject();
|
||||
obj["key"] = "value";
|
||||
|
||||
JsonVariant variant = obj;
|
||||
@ -202,9 +201,7 @@ TEST_CASE("JsonVariant::as()") {
|
||||
}
|
||||
|
||||
SECTION("ArrayAsString") {
|
||||
DynamicJsonBuffer buffer;
|
||||
|
||||
JsonArray& arr = buffer.createArray();
|
||||
DynamicJsonArray arr;
|
||||
arr.add(4);
|
||||
arr.add(2);
|
||||
|
||||
@ -213,8 +210,7 @@ TEST_CASE("JsonVariant::as()") {
|
||||
}
|
||||
|
||||
SECTION("ArrayAsJsonArray") {
|
||||
DynamicJsonBuffer buffer;
|
||||
JsonArray& arr = buffer.createArray();
|
||||
DynamicJsonArray arr;
|
||||
|
||||
JsonVariant variant = arr;
|
||||
REQUIRE(&arr == &variant.as<JsonArray&>());
|
||||
@ -222,11 +218,10 @@ TEST_CASE("JsonVariant::as()") {
|
||||
}
|
||||
|
||||
SECTION("ObjectAsJsonObject") {
|
||||
DynamicJsonBuffer buffer;
|
||||
JsonObject& arr = buffer.createObject();
|
||||
DynamicJsonObject obj;
|
||||
|
||||
JsonVariant variant = arr;
|
||||
REQUIRE(&arr == &variant.as<JsonObject&>());
|
||||
REQUIRE(&arr == &variant.as<JsonObject>()); // <- shorthand
|
||||
JsonVariant variant = obj;
|
||||
REQUIRE(&obj == &variant.as<JsonObject&>());
|
||||
REQUIRE(&obj == &variant.as<JsonObject>()); // <- shorthand
|
||||
}
|
||||
}
|
||||
|
@ -97,8 +97,8 @@ TEST_CASE("JsonVariant comparisons") {
|
||||
}
|
||||
|
||||
SECTION("StringLiteral") {
|
||||
DynamicJsonBuffer jsonBuffer;
|
||||
JsonVariant variant = jsonBuffer.parse("\"hello\"");
|
||||
DynamicJsonVariant variant;
|
||||
deserializeJson(variant, "\"hello\"");
|
||||
|
||||
REQUIRE(variant == "hello");
|
||||
REQUIRE_FALSE(variant != "hello");
|
||||
@ -114,8 +114,8 @@ TEST_CASE("JsonVariant comparisons") {
|
||||
}
|
||||
|
||||
SECTION("String") {
|
||||
DynamicJsonBuffer jsonBuffer;
|
||||
JsonVariant variant = jsonBuffer.parse("\"hello\"");
|
||||
DynamicJsonVariant variant;
|
||||
deserializeJson(variant, "\"hello\"");
|
||||
|
||||
REQUIRE(variant == std::string("hello"));
|
||||
REQUIRE_FALSE(variant != std::string("hello"));
|
||||
@ -179,9 +179,7 @@ TEST_CASE("JsonVariant comparisons") {
|
||||
}
|
||||
|
||||
SECTION("ArrayInVariant") {
|
||||
DynamicJsonBuffer jsonBuffer;
|
||||
JsonArray& array1 = jsonBuffer.createArray();
|
||||
JsonArray& array2 = jsonBuffer.createArray();
|
||||
DynamicJsonArray array1, array2;
|
||||
|
||||
JsonVariant variant1 = array1;
|
||||
JsonVariant variant2 = array1;
|
||||
@ -195,9 +193,8 @@ TEST_CASE("JsonVariant comparisons") {
|
||||
}
|
||||
|
||||
SECTION("ObjectInVariant") {
|
||||
DynamicJsonBuffer jsonBuffer;
|
||||
JsonObject& obj1 = jsonBuffer.createObject();
|
||||
JsonObject& obj2 = jsonBuffer.createObject();
|
||||
DynamicJsonObject obj1;
|
||||
DynamicJsonObject obj2;
|
||||
|
||||
JsonVariant variant1 = obj1;
|
||||
JsonVariant variant2 = obj1;
|
||||
@ -211,14 +208,10 @@ TEST_CASE("JsonVariant comparisons") {
|
||||
}
|
||||
|
||||
SECTION("VariantsOfDifferentTypes") {
|
||||
DynamicJsonBuffer jsonBuffer;
|
||||
DynamicJsonObject obj;
|
||||
DynamicJsonArray arr;
|
||||
JsonVariant variants[] = {
|
||||
true,
|
||||
42,
|
||||
666.667,
|
||||
"hello",
|
||||
jsonBuffer.createArray(),
|
||||
jsonBuffer.createObject(),
|
||||
true, 42, 666.667, "hello", arr, obj,
|
||||
};
|
||||
size_t n = sizeof(variants) / sizeof(variants[0]);
|
||||
|
||||
|
@ -6,7 +6,6 @@
|
||||
#include <catch.hpp>
|
||||
|
||||
TEST_CASE("JsonVariant copy") {
|
||||
DynamicJsonBuffer _jsonBuffer;
|
||||
JsonVariant _variant1;
|
||||
JsonVariant _variant2;
|
||||
|
||||
@ -43,7 +42,7 @@ TEST_CASE("JsonVariant copy") {
|
||||
}
|
||||
|
||||
SECTION("ObjectsAreCopiedByReference") {
|
||||
JsonObject &object = _jsonBuffer.createObject();
|
||||
DynamicJsonObject object;
|
||||
|
||||
_variant1 = object;
|
||||
|
||||
@ -53,7 +52,7 @@ TEST_CASE("JsonVariant copy") {
|
||||
}
|
||||
|
||||
SECTION("ArraysAreCopiedByReference") {
|
||||
JsonArray &array = _jsonBuffer.createArray();
|
||||
DynamicJsonArray array;
|
||||
|
||||
_variant1 = array;
|
||||
|
||||
|
@ -72,7 +72,8 @@ TEST_CASE("JsonVariant::is()") {
|
||||
DynamicJsonBuffer jsonBuffer;
|
||||
|
||||
SECTION("JsonArray") {
|
||||
checkIsArray(jsonBuffer.createArray());
|
||||
DynamicJsonArray array;
|
||||
checkIsArray(array);
|
||||
}
|
||||
|
||||
SECTION("bool") {
|
||||
|
@ -122,9 +122,8 @@ TEST_CASE("JsonVariant set()/get()") {
|
||||
#endif
|
||||
|
||||
SECTION("CanStoreObject") {
|
||||
DynamicJsonBuffer jsonBuffer;
|
||||
JsonObject &object = jsonBuffer.createObject();
|
||||
DynamicJsonObject object;
|
||||
|
||||
checkReference(object);
|
||||
checkReference<JsonObject>(object);
|
||||
}
|
||||
}
|
||||
|
@ -6,10 +6,8 @@
|
||||
#include <catch.hpp>
|
||||
|
||||
TEST_CASE("JsonVariant::operator[]") {
|
||||
DynamicJsonBuffer _jsonBuffer;
|
||||
|
||||
SECTION("Array") {
|
||||
JsonArray &array = _jsonBuffer.createArray();
|
||||
DynamicJsonArray array;
|
||||
array.add("element at index 0");
|
||||
array.add("element at index 1");
|
||||
|
||||
@ -26,7 +24,7 @@ TEST_CASE("JsonVariant::operator[]") {
|
||||
}
|
||||
|
||||
SECTION("Object") {
|
||||
JsonObject &object = _jsonBuffer.createObject();
|
||||
DynamicJsonObject object;
|
||||
object["a"] = "element at key \"a\"";
|
||||
object["b"] = "element at key \"b\"";
|
||||
|
||||
@ -54,21 +52,24 @@ TEST_CASE("JsonVariant::operator[]") {
|
||||
}
|
||||
|
||||
SECTION("ObjectSetValue") {
|
||||
JsonVariant var = _jsonBuffer.createObject();
|
||||
DynamicJsonObject obj;
|
||||
JsonVariant var = obj;
|
||||
var["hello"] = "world";
|
||||
REQUIRE(1 == var.size());
|
||||
REQUIRE(std::string("world") == var["hello"]);
|
||||
}
|
||||
|
||||
SECTION("ArraySetValue") {
|
||||
JsonVariant var = _jsonBuffer.parseArray("[\"hello\"]");
|
||||
DynamicJsonVariant var;
|
||||
deserializeJson(var, "[\"hello\"]");
|
||||
var[0] = "world";
|
||||
REQUIRE(1 == var.size());
|
||||
REQUIRE(std::string("world") == var[0]);
|
||||
}
|
||||
|
||||
SECTION("NestedObjectSetValue") {
|
||||
JsonVariant var = _jsonBuffer.parseArray("[{}]");
|
||||
DynamicJsonVariant var;
|
||||
deserializeJson(var, "[{}]");
|
||||
var[0]["hello"] = "world";
|
||||
REQUIRE(1 == var.size());
|
||||
REQUIRE(1 == var[0].size());
|
||||
|
@ -17,16 +17,16 @@ TEST_CASE("JsonVariant::success()") {
|
||||
}
|
||||
|
||||
SECTION("ReturnsTrue_WhenEmptyArray") {
|
||||
DynamicJsonBuffer jsonBuffer;
|
||||
DynamicJsonArray array;
|
||||
|
||||
JsonVariant variant = jsonBuffer.createArray();
|
||||
JsonVariant variant = array;
|
||||
REQUIRE(true == variant.success());
|
||||
}
|
||||
|
||||
SECTION("ReturnsTrue_WhenEmptyObject") {
|
||||
DynamicJsonBuffer jsonBuffer;
|
||||
DynamicJsonObject obj;
|
||||
|
||||
JsonVariant variant = jsonBuffer.createObject();
|
||||
JsonVariant variant = obj;
|
||||
REQUIRE(true == variant.success());
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user