Merge DynamicJsonDocument with JsonDocument

This commit is contained in:
Benoit Blanchon
2023-03-20 10:49:01 +01:00
parent db9258bcd7
commit 540901e219
164 changed files with 550 additions and 666 deletions

View File

@ -27,7 +27,7 @@ Here is the environment that I used:
Here is a small snippet that reproduces the issue. Here is a small snippet that reproduces the issue.
```c++ ```c++
DynamicJsonDocument doc(1024); JsonDocument doc(1024);
DeserializationError error = deserializeJson(doc, "{\"hello\":\"world\"}"); DeserializationError error = deserializeJson(doc, "{\"hello\":\"world\"}");

View File

@ -28,7 +28,7 @@ Here is the environment that I'm using':
Here is a small snippet that demonstrate the problem. Here is a small snippet that demonstrate the problem.
```c++ ```c++
DynamicJsonDocument doc(1024); JsonDocument doc(1024);
DeserializationError error = deserializeJson(doc, "{\"hello\":\"world\"}"); DeserializationError error = deserializeJson(doc, "{\"hello\":\"world\"}");

View File

@ -481,7 +481,7 @@ jobs:
g++ -x c++ - <<END g++ -x c++ - <<END
#include "${{ steps.amalgamate.outputs.filename }}" #include "${{ steps.amalgamate.outputs.filename }}"
int main() { int main() {
DynamicJsonDocument doc(300); JsonDocument doc(300);
deserializeJson(doc, "{}"); deserializeJson(doc, "{}");
} }
END END
@ -515,7 +515,7 @@ jobs:
g++ -x c++ - <<END g++ -x c++ - <<END
#include "${{ steps.amalgamate.outputs.filename }}" #include "${{ steps.amalgamate.outputs.filename }}"
int main() { int main() {
ArduinoJson::DynamicJsonDocument doc(300); ArduinoJson::JsonDocument doc(300);
deserializeJson(doc, "{}"); deserializeJson(doc, "{}");
} }
END END

View File

@ -7,3 +7,4 @@ HEAD
* Remove `BasicJsonDocument` * Remove `BasicJsonDocument`
* Remove `StaticJsonDocument` * Remove `StaticJsonDocument`
* Add abstract `Allocator` class * Add abstract `Allocator` class
* Merge `DynamicJsonDocument` with `JsonDocument`

View File

@ -110,7 +110,7 @@ Here is a program that parses a JSON document with ArduinoJson.
```c++ ```c++
char json[] = "{\"sensor\":\"gps\",\"time\":1351824120,\"data\":[48.756080,2.302038]}"; char json[] = "{\"sensor\":\"gps\",\"time\":1351824120,\"data\":[48.756080,2.302038]}";
DynamicJsonDocument doc(1024); JsonDocument doc(1024);
deserializeJson(doc, json); deserializeJson(doc, json);
const char* sensor = doc["sensor"]; const char* sensor = doc["sensor"];
@ -126,7 +126,7 @@ See the [tutorial on arduinojson.org](https://arduinojson.org/v6/doc/deserializa
Here is a program that generates a JSON document with ArduinoJson: Here is a program that generates a JSON document with ArduinoJson:
```c++ ```c++
DynamicJsonDocument doc(1024); JsonDocument doc(1024);
doc["sensor"] = "gps"; doc["sensor"] = "gps";
doc["time"] = 1351824120; doc["time"] = 1351824120;

View File

@ -45,7 +45,7 @@ void loadConfiguration(const char* filename, Config& config) {
// Allocate a temporary JsonDocument // Allocate a temporary JsonDocument
// Don't forget to change the capacity to match your requirements. // Don't forget to change the capacity to match your requirements.
// Use https://arduinojson.org/v6/assistant to compute the capacity. // Use https://arduinojson.org/v6/assistant to compute the capacity.
DynamicJsonDocument doc(512); JsonDocument doc(512);
// Deserialize the JSON document // Deserialize the JSON document
DeserializationError error = deserializeJson(doc, file); DeserializationError error = deserializeJson(doc, file);
@ -77,7 +77,7 @@ void saveConfiguration(const char* filename, const Config& config) {
// Allocate a temporary JsonDocument // Allocate a temporary JsonDocument
// Don't forget to change the capacity to match your requirements. // Don't forget to change the capacity to match your requirements.
// Use https://arduinojson.org/assistant to compute the capacity. // Use https://arduinojson.org/assistant to compute the capacity.
DynamicJsonDocument doc(256); JsonDocument doc(256);
// Set the values in the document // Set the values in the document
doc["hostname"] = config.hostname; doc["hostname"] = config.hostname;

View File

@ -34,12 +34,12 @@ void setup() {
"1000000,\"timezone\":0,\"sunrise\":1581492085,\"sunset\":1581527294}}"); "1000000,\"timezone\":0,\"sunrise\":1581492085,\"sunset\":1581527294}}");
// The filter: it contains "true" for each value we want to keep // The filter: it contains "true" for each value we want to keep
DynamicJsonDocument filter(200); JsonDocument filter(200);
filter["list"][0]["dt"] = true; filter["list"][0]["dt"] = true;
filter["list"][0]["main"]["temp"] = true; filter["list"][0]["main"]["temp"] = true;
// Deserialize the document // Deserialize the document
DynamicJsonDocument doc(400); JsonDocument doc(400);
deserializeJson(doc, input_json, DeserializationOption::Filter(filter)); deserializeJson(doc, input_json, DeserializationOption::Filter(filter));
// Print the result // Print the result

View File

@ -19,7 +19,7 @@ void setup() {
// Inside the parentheses, 200 is the RAM allocated to this document. // Inside the parentheses, 200 is the RAM allocated to this document.
// Don't forget to change this value to match your requirement. // Don't forget to change this value to match your requirement.
// Use https://arduinojson.org/v6/assistant to compute the capacity. // Use https://arduinojson.org/v6/assistant to compute the capacity.
DynamicJsonDocument doc(200); JsonDocument doc(200);
// Add values in the document // Add values in the document
// //

View File

@ -79,7 +79,7 @@ void setup() {
// Allocate the JSON document // Allocate the JSON document
// Use https://arduinojson.org/v6/assistant to compute the capacity. // Use https://arduinojson.org/v6/assistant to compute the capacity.
const size_t capacity = JSON_OBJECT_SIZE(3) + JSON_ARRAY_SIZE(2) + 60; const size_t capacity = JSON_OBJECT_SIZE(3) + JSON_ARRAY_SIZE(2) + 60;
DynamicJsonDocument doc(capacity); JsonDocument doc(capacity);
// Parse JSON object // Parse JSON object
DeserializationError error = deserializeJson(doc, client); DeserializationError error = deserializeJson(doc, client);

View File

@ -19,7 +19,7 @@ void setup() {
// Inside the parentheses, 200 is the capacity of the memory pool in bytes. // Inside the parentheses, 200 is the capacity of the memory pool in bytes.
// Don't forget to change this value to match your JSON document. // Don't forget to change this value to match your JSON document.
// Use https://arduinojson.org/v6/assistant to compute the capacity. // Use https://arduinojson.org/v6/assistant to compute the capacity.
DynamicJsonDocument doc(200); JsonDocument doc(200);
// JSON input string. // JSON input string.
// //

View File

@ -58,7 +58,7 @@ void loop() {
// Allocate a temporary JsonDocument // Allocate a temporary JsonDocument
// Use https://arduinojson.org/v6/assistant to compute the capacity. // Use https://arduinojson.org/v6/assistant to compute the capacity.
DynamicJsonDocument doc(500); JsonDocument doc(500);
// Create the "analog" array // Create the "analog" array
JsonArray analogValues = doc.createNestedArray("analog"); JsonArray analogValues = doc.createNestedArray("analog");

View File

@ -48,7 +48,7 @@ void setup() {
void loop() { void loop() {
// Allocate a temporary JsonDocument // Allocate a temporary JsonDocument
// Use https://arduinojson.org/v6/assistant to compute the capacity. // Use https://arduinojson.org/v6/assistant to compute the capacity.
DynamicJsonDocument doc(500); JsonDocument doc(500);
// Create the "analog" array // Create the "analog" array
JsonArray analogValues = doc.createNestedArray("analog"); JsonArray analogValues = doc.createNestedArray("analog");

View File

@ -20,7 +20,7 @@ void setup() {
// Inside the parentheses, 200 is the capacity of the memory pool in bytes. // Inside the parentheses, 200 is the capacity of the memory pool in bytes.
// Don't forget to change this value to match your JSON document. // Don't forget to change this value to match your JSON document.
// Use https://arduinojson.org/v6/assistant to compute the capacity. // Use https://arduinojson.org/v6/assistant to compute the capacity.
DynamicJsonDocument doc(200); JsonDocument doc(200);
// MessagePack input string. // MessagePack input string.
// //

View File

@ -14,7 +14,7 @@
#include <ArduinoJson.h> #include <ArduinoJson.h>
void setup() { void setup() {
DynamicJsonDocument doc(1024); JsonDocument doc(1024);
// You can use a Flash String as your JSON input. // You can use a Flash String as your JSON input.
// WARNING: the strings in the input will be duplicated in the JsonDocument. // WARNING: the strings in the input will be duplicated in the JsonDocument.

View File

@ -13,7 +13,7 @@
#include <ArduinoJson.h> #include <ArduinoJson.h>
void setup() { void setup() {
DynamicJsonDocument doc(1024); JsonDocument doc(1024);
// You can use a String as your JSON input. // You can use a String as your JSON input.
// WARNING: the string in the input will be duplicated in the JsonDocument. // WARNING: the string in the input will be duplicated in the JsonDocument.

View File

@ -6,7 +6,7 @@
extern "C" void app_main() { extern "C" void app_main() {
char buffer[256]; char buffer[256];
DynamicJsonDocument doc(200); JsonDocument doc(200);
doc["hello"] = "world"; doc["hello"] = "world";
serializeJson(doc, buffer); serializeJson(doc, buffer);

View File

@ -1,7 +1,7 @@
#include <ArduinoJson.h> #include <ArduinoJson.h>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
DeserializationError error = deserializeJson(doc, data, size); DeserializationError error = deserializeJson(doc, data, size);
if (!error) { if (!error) {
std::string json; std::string json;

View File

@ -1,7 +1,7 @@
#include <ArduinoJson.h> #include <ArduinoJson.h>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
DeserializationError error = deserializeMsgPack(doc, data, size); DeserializationError error = deserializeMsgPack(doc, data, size);
if (!error) { if (!error) {
std::string json; std::string json;

View File

@ -13,7 +13,7 @@ int main() {
// Inside the parentheses, 200 is the RAM allocated to this document. // Inside the parentheses, 200 is the RAM allocated to this document.
// Don't forget to change this value to match your requirement. // Don't forget to change this value to match your requirement.
// Use https://arduinojson.org/v6/assistant to compute the capacity. // Use https://arduinojson.org/v6/assistant to compute the capacity.
DynamicJsonDocument doc(200); JsonDocument doc(200);
// Add values in the document // Add values in the document
// //

View File

@ -13,7 +13,7 @@ int main() {
// Inside the parentheses, 200 is the capacity of the memory pool in bytes. // Inside the parentheses, 200 is the capacity of the memory pool in bytes.
// Don't forget to change this value to match your JSON document. // Don't forget to change this value to match your JSON document.
// Use https://arduinojson.org/v6/assistant to compute the capacity. // Use https://arduinojson.org/v6/assistant to compute the capacity.
DynamicJsonDocument doc(300); JsonDocument doc(300);
// JSON input string. // JSON input string.
// //

View File

@ -13,7 +13,7 @@ int main() {
// Inside the parentheses, 300 is the size of the memory pool in bytes. // Inside the parentheses, 300 is the size of the memory pool in bytes.
// Don't forget to change this value to match your JSON document. // Don't forget to change this value to match your JSON document.
// Use https://arduinojson.org/assistant to compute the capacity. // Use https://arduinojson.org/assistant to compute the capacity.
DynamicJsonDocument doc(300); JsonDocument doc(300);
// MessagePack input string. // MessagePack input string.
// //

View File

@ -8,7 +8,7 @@
#endif #endif
TEST_CASE("string_view") { TEST_CASE("string_view") {
DynamicJsonDocument doc(256); JsonDocument doc(256);
JsonVariant variant = doc.to<JsonVariant>(); JsonVariant variant = doc.to<JsonVariant>();
SECTION("deserializeJson()") { SECTION("deserializeJson()") {

View File

@ -4,7 +4,7 @@
#include <string> #include <string>
TEST_CASE("C++20 smoke test") { TEST_CASE("C++20 smoke test") {
DynamicJsonDocument doc(128); JsonDocument doc(128);
deserializeJson(doc, "{\"hello\":\"world\"}"); deserializeJson(doc, "{\"hello\":\"world\"}");
REQUIRE(doc["hello"] == "world"); REQUIRE(doc["hello"] == "world");

View File

@ -23,18 +23,12 @@ endmacro()
add_executable(Issue978 Issue978.cpp) add_executable(Issue978 Issue978.cpp)
build_should_fail(Issue978) build_should_fail(Issue978)
add_executable(Issue1189 Issue1189.cpp)
build_should_fail(Issue1189)
add_executable(read_long_long read_long_long.cpp) add_executable(read_long_long read_long_long.cpp)
build_should_fail(read_long_long) build_should_fail(read_long_long)
add_executable(write_long_long write_long_long.cpp) add_executable(write_long_long write_long_long.cpp)
build_should_fail(write_long_long) build_should_fail(write_long_long)
add_executable(delete_jsondocument delete_jsondocument.cpp)
build_should_fail(delete_jsondocument)
add_executable(variant_as_char variant_as_char.cpp) add_executable(variant_as_char variant_as_char.cpp)
build_should_fail(variant_as_char) build_should_fail(variant_as_char)

View File

@ -1,13 +0,0 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>
// a function should not be able to get a JsonDocument by value
void f(JsonDocument) {}
int main() {
DynamicJsonDocument doc(1024);
f(doc);
}

View File

@ -8,6 +8,6 @@ struct Stream {};
int main() { int main() {
Stream* stream = 0; Stream* stream = 0;
DynamicJsonDocument doc(1024); JsonDocument doc(1024);
deserializeJson(doc, stream); deserializeJson(doc, stream);
} }

View File

@ -7,6 +7,6 @@
// See issue #1498 // See issue #1498
int main() { int main() {
DynamicJsonDocument doc(1024); JsonDocument doc(1024);
doc["dummy"] = 'A'; doc["dummy"] = 'A';
} }

View File

@ -1,12 +0,0 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>
struct Stream {};
int main() {
JsonDocument* doc = new DynamicJsonDocument(42);
delete doc;
}

View File

@ -11,6 +11,6 @@
ARDUINOJSON_ASSERT_INTEGER_TYPE_IS_SUPPORTED(long long) ARDUINOJSON_ASSERT_INTEGER_TYPE_IS_SUPPORTED(long long)
int main() { int main() {
DynamicJsonDocument doc(1024); JsonDocument doc(1024);
doc["dummy"].as<long long>(); doc["dummy"].as<long long>();
} }

View File

@ -7,6 +7,6 @@
// See issue #1498 // See issue #1498
int main() { int main() {
DynamicJsonDocument doc(1024); JsonDocument doc(1024);
doc["dummy"].as<char>(); doc["dummy"].as<char>();
} }

View File

@ -10,6 +10,6 @@
#endif #endif
int main() { int main() {
DynamicJsonDocument doc(1024); JsonDocument doc(1024);
doc["dummy"] = static_cast<long long>(42); doc["dummy"] = static_cast<long long>(42);
} }

View File

@ -6,7 +6,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("Gbathree") { TEST_CASE("Gbathree") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
DeserializationError error = deserializeJson( DeserializationError error = deserializeJson(
doc, doc,

View File

@ -8,8 +8,8 @@
// https://github.com/bblanchon/ArduinoJson/issues/772 // https://github.com/bblanchon/ArduinoJson/issues/772
TEST_CASE("Issue772") { TEST_CASE("Issue772") {
DynamicJsonDocument doc1(4096); JsonDocument doc1(4096);
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
DeserializationError err; DeserializationError err;
std::string data = std::string data =
"{\"state\":{\"reported\":{\"timestamp\":\"2018-07-02T09:40:12Z\"," "{\"state\":{\"reported\":{\"timestamp\":\"2018-07-02T09:40:12Z\","

View File

@ -53,12 +53,12 @@ TEST_CASE("OpenWeatherMap") {
"]}"; "]}";
// clang-format on // clang-format on
DynamicJsonDocument filter(512); JsonDocument filter(512);
filter["list"][0]["dt"] = true; filter["list"][0]["dt"] = true;
filter["list"][0]["main"]["temp"] = true; filter["list"][0]["main"]["temp"] = true;
filter["list"][0]["weather"][0]["description"] = true; filter["list"][0]["weather"][0]["description"] = true;
DynamicJsonDocument doc(16384); JsonDocument doc(16384);
REQUIRE( REQUIRE(
deserializeJson(doc, input_json, DeserializationOption::Filter(filter)) == deserializeJson(doc, input_json, DeserializationOption::Filter(filter)) ==

View File

@ -6,7 +6,7 @@
#include <catch.hpp> #include <catch.hpp>
void check(std::string originalJson) { void check(std::string originalJson) {
DynamicJsonDocument doc(16384); JsonDocument doc(16384);
std::string prettyJson; std::string prettyJson;
deserializeJson(doc, originalJson); deserializeJson(doc, originalJson);

View File

@ -6,7 +6,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("JsonArray::add()") { TEST_CASE("JsonArray::add()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonArray array = doc.to<JsonArray>(); JsonArray array = doc.to<JsonArray>();
SECTION("int") { SECTION("int") {
@ -51,7 +51,7 @@ TEST_CASE("JsonArray::add()") {
#endif #endif
SECTION("nested array") { SECTION("nested array") {
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
JsonArray arr = doc2.to<JsonArray>(); JsonArray arr = doc2.to<JsonArray>();
array.add(arr); array.add(arr);
@ -62,7 +62,7 @@ TEST_CASE("JsonArray::add()") {
} }
SECTION("nested object") { SECTION("nested object") {
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
JsonObject obj = doc2.to<JsonObject>(); JsonObject obj = doc2.to<JsonObject>();
array.add(obj); array.add(obj);
@ -74,7 +74,7 @@ TEST_CASE("JsonArray::add()") {
SECTION("array subscript") { SECTION("array subscript") {
const char* str = "hello"; const char* str = "hello";
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
JsonArray arr = doc2.to<JsonArray>(); JsonArray arr = doc2.to<JsonArray>();
arr.add(str); arr.add(str);
@ -85,7 +85,7 @@ TEST_CASE("JsonArray::add()") {
SECTION("object subscript") { SECTION("object subscript") {
const char* str = "hello"; const char* str = "hello";
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
JsonObject obj = doc2.to<JsonObject>(); JsonObject obj = doc2.to<JsonObject>();
obj["x"] = str; obj["x"] = str;

View File

@ -14,7 +14,7 @@ TEST_CASE("JsonArray::clear()") {
} }
SECTION("Removes all elements") { SECTION("Removes all elements") {
DynamicJsonDocument doc(64); JsonDocument doc(64);
JsonArray array = doc.to<JsonArray>(); JsonArray array = doc.to<JsonArray>();
array.add(1); array.add(1);
array.add(2); array.add(2);

View File

@ -6,7 +6,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("Compare JsonArray with JsonArray") { TEST_CASE("Compare JsonArray with JsonArray") {
DynamicJsonDocument doc(256); JsonDocument doc(256);
SECTION("Compare with unbound") { SECTION("Compare with unbound") {
JsonArray array = doc.to<JsonArray>(); JsonArray array = doc.to<JsonArray>();
@ -82,7 +82,7 @@ TEST_CASE("Compare JsonArray with JsonArray") {
} }
TEST_CASE("Compare JsonArray with JsonVariant") { TEST_CASE("Compare JsonArray with JsonVariant") {
DynamicJsonDocument doc(256); JsonDocument doc(256);
SECTION("Compare with self") { SECTION("Compare with self") {
JsonArray array = doc.to<JsonArray>(); JsonArray array = doc.to<JsonArray>();
@ -153,7 +153,7 @@ TEST_CASE("Compare JsonArray with JsonVariant") {
} }
TEST_CASE("Compare JsonArray with JsonVariantConst") { TEST_CASE("Compare JsonArray with JsonVariantConst") {
DynamicJsonDocument doc(256); JsonDocument doc(256);
SECTION("Compare with unbound") { SECTION("Compare with unbound") {
JsonArray array = doc.to<JsonArray>(); JsonArray array = doc.to<JsonArray>();
@ -247,7 +247,7 @@ TEST_CASE("Compare JsonArray with JsonVariantConst") {
} }
TEST_CASE("Compare JsonArray with JsonArrayConst") { TEST_CASE("Compare JsonArray with JsonArrayConst") {
DynamicJsonDocument doc(256); JsonDocument doc(256);
SECTION("Compare with unbound") { SECTION("Compare with unbound") {
JsonArray array = doc.to<JsonArray>(); JsonArray array = doc.to<JsonArray>();
@ -347,7 +347,7 @@ TEST_CASE("Compare JsonArray with JsonArrayConst") {
} }
TEST_CASE("Compare JsonArrayConst with JsonArrayConst") { TEST_CASE("Compare JsonArrayConst with JsonArrayConst") {
DynamicJsonDocument doc(256); JsonDocument doc(256);
SECTION("Compare with unbound") { SECTION("Compare with unbound") {
JsonArray array = doc.to<JsonArray>(); JsonArray array = doc.to<JsonArray>();
@ -430,7 +430,7 @@ TEST_CASE("Compare JsonArrayConst with JsonArrayConst") {
} }
TEST_CASE("Compare JsonArrayConst with JsonVariant") { TEST_CASE("Compare JsonArrayConst with JsonVariant") {
DynamicJsonDocument doc(256); JsonDocument doc(256);
SECTION("Compare with self") { SECTION("Compare with self") {
JsonArray array = doc.to<JsonArray>(); JsonArray array = doc.to<JsonArray>();

View File

@ -7,7 +7,7 @@
TEST_CASE("copyArray()") { TEST_CASE("copyArray()") {
SECTION("int[] -> JsonArray") { SECTION("int[] -> JsonArray") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonArray array = doc.to<JsonArray>(); JsonArray array = doc.to<JsonArray>();
char json[32]; char json[32];
int source[] = {1, 2, 3}; int source[] = {1, 2, 3};
@ -20,7 +20,7 @@ TEST_CASE("copyArray()") {
} }
SECTION("std::string[] -> JsonArray") { SECTION("std::string[] -> JsonArray") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonArray array = doc.to<JsonArray>(); JsonArray array = doc.to<JsonArray>();
char json[32]; char json[32];
std::string source[] = {"a", "b", "c"}; std::string source[] = {"a", "b", "c"};
@ -33,7 +33,7 @@ TEST_CASE("copyArray()") {
} }
SECTION("const char*[] -> JsonArray") { SECTION("const char*[] -> JsonArray") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonArray array = doc.to<JsonArray>(); JsonArray array = doc.to<JsonArray>();
char json[32]; char json[32];
const char* source[] = {"a", "b", "c"}; const char* source[] = {"a", "b", "c"};
@ -46,7 +46,7 @@ TEST_CASE("copyArray()") {
} }
SECTION("const char[][] -> JsonArray") { SECTION("const char[][] -> JsonArray") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonArray array = doc.to<JsonArray>(); JsonArray array = doc.to<JsonArray>();
char json[32]; char json[32];
char source[][2] = {"a", "b", "c"}; char source[][2] = {"a", "b", "c"};
@ -59,7 +59,7 @@ TEST_CASE("copyArray()") {
} }
SECTION("const char[][] -> JsonDocument") { SECTION("const char[][] -> JsonDocument") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
char json[32]; char json[32];
char source[][2] = {"a", "b", "c"}; char source[][2] = {"a", "b", "c"};
@ -71,7 +71,7 @@ TEST_CASE("copyArray()") {
} }
SECTION("const char[][] -> MemberProxy") { SECTION("const char[][] -> MemberProxy") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
char json[32]; char json[32];
char source[][2] = {"a", "b", "c"}; char source[][2] = {"a", "b", "c"};
@ -83,7 +83,7 @@ TEST_CASE("copyArray()") {
} }
SECTION("int[] -> JsonDocument") { SECTION("int[] -> JsonDocument") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
char json[32]; char json[32];
int source[] = {1, 2, 3}; int source[] = {1, 2, 3};
@ -95,7 +95,7 @@ TEST_CASE("copyArray()") {
} }
SECTION("int[] -> MemberProxy") { SECTION("int[] -> MemberProxy") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
char json[32]; char json[32];
int source[] = {1, 2, 3}; int source[] = {1, 2, 3};
@ -108,7 +108,7 @@ TEST_CASE("copyArray()") {
SECTION("int[] -> JsonArray, but not enough memory") { SECTION("int[] -> JsonArray, but not enough memory") {
const size_t SIZE = JSON_ARRAY_SIZE(2); const size_t SIZE = JSON_ARRAY_SIZE(2);
DynamicJsonDocument doc(SIZE); JsonDocument doc(SIZE);
JsonArray array = doc.to<JsonArray>(); JsonArray array = doc.to<JsonArray>();
char json[32]; char json[32];
int source[] = {1, 2, 3}; int source[] = {1, 2, 3};
@ -121,7 +121,7 @@ TEST_CASE("copyArray()") {
} }
SECTION("int[][] -> JsonArray") { SECTION("int[][] -> JsonArray") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonArray array = doc.to<JsonArray>(); JsonArray array = doc.to<JsonArray>();
char json[32]; char json[32];
int source[][3] = {{1, 2, 3}, {4, 5, 6}}; int source[][3] = {{1, 2, 3}, {4, 5, 6}};
@ -134,7 +134,7 @@ TEST_CASE("copyArray()") {
} }
SECTION("int[][] -> MemberProxy") { SECTION("int[][] -> MemberProxy") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
char json[32]; char json[32];
int source[][3] = {{1, 2, 3}, {4, 5, 6}}; int source[][3] = {{1, 2, 3}, {4, 5, 6}};
@ -146,7 +146,7 @@ TEST_CASE("copyArray()") {
} }
SECTION("int[][] -> JsonDocument") { SECTION("int[][] -> JsonDocument") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
char json[32]; char json[32];
int source[][3] = {{1, 2, 3}, {4, 5, 6}}; int source[][3] = {{1, 2, 3}, {4, 5, 6}};
@ -160,7 +160,7 @@ TEST_CASE("copyArray()") {
SECTION("int[][] -> JsonArray, but not enough memory") { SECTION("int[][] -> JsonArray, but not enough memory") {
const size_t SIZE = const size_t SIZE =
JSON_ARRAY_SIZE(2) + JSON_ARRAY_SIZE(3) + JSON_ARRAY_SIZE(2); JSON_ARRAY_SIZE(2) + JSON_ARRAY_SIZE(3) + JSON_ARRAY_SIZE(2);
DynamicJsonDocument doc(SIZE); JsonDocument doc(SIZE);
JsonArray array = doc.to<JsonArray>(); JsonArray array = doc.to<JsonArray>();
char json[32] = ""; char json[32] = "";
int source[][3] = {{1, 2, 3}, {4, 5, 6}}; int source[][3] = {{1, 2, 3}, {4, 5, 6}};
@ -176,7 +176,7 @@ TEST_CASE("copyArray()") {
} }
SECTION("JsonArray -> int[], with more space than needed") { SECTION("JsonArray -> int[], with more space than needed") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
char json[] = "[1,2,3]"; char json[] = "[1,2,3]";
DeserializationError err = deserializeJson(doc, json); DeserializationError err = deserializeJson(doc, json);
CHECK(err == DeserializationError::Ok); CHECK(err == DeserializationError::Ok);
@ -193,7 +193,7 @@ TEST_CASE("copyArray()") {
} }
SECTION("JsonArray -> int[], without enough space") { SECTION("JsonArray -> int[], without enough space") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
char json[] = "[1,2,3]"; char json[] = "[1,2,3]";
DeserializationError err = deserializeJson(doc, json); DeserializationError err = deserializeJson(doc, json);
CHECK(err == DeserializationError::Ok); CHECK(err == DeserializationError::Ok);
@ -208,7 +208,7 @@ TEST_CASE("copyArray()") {
} }
SECTION("JsonArray -> std::string[]") { SECTION("JsonArray -> std::string[]") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
char json[] = "[\"a\",\"b\",\"c\"]"; char json[] = "[\"a\",\"b\",\"c\"]";
DeserializationError err = deserializeJson(doc, json); DeserializationError err = deserializeJson(doc, json);
CHECK(err == DeserializationError::Ok); CHECK(err == DeserializationError::Ok);
@ -225,7 +225,7 @@ TEST_CASE("copyArray()") {
} }
SECTION("JsonArray -> char[N][]") { SECTION("JsonArray -> char[N][]") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
char json[] = "[\"a12345\",\"b123456\",\"c1234567\"]"; char json[] = "[\"a12345\",\"b123456\",\"c1234567\"]";
DeserializationError err = deserializeJson(doc, json); DeserializationError err = deserializeJson(doc, json);
CHECK(err == DeserializationError::Ok); CHECK(err == DeserializationError::Ok);
@ -242,7 +242,7 @@ TEST_CASE("copyArray()") {
} }
SECTION("JsonDocument -> int[]") { SECTION("JsonDocument -> int[]") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
char json[] = "[1,2,3]"; char json[] = "[1,2,3]";
DeserializationError err = deserializeJson(doc, json); DeserializationError err = deserializeJson(doc, json);
CHECK(err == DeserializationError::Ok); CHECK(err == DeserializationError::Ok);
@ -258,7 +258,7 @@ TEST_CASE("copyArray()") {
} }
SECTION("MemberProxy -> int[]") { SECTION("MemberProxy -> int[]") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
char json[] = "{\"data\":[1,2,3]}"; char json[] = "{\"data\":[1,2,3]}";
DeserializationError err = deserializeJson(doc, json); DeserializationError err = deserializeJson(doc, json);
CHECK(err == DeserializationError::Ok); CHECK(err == DeserializationError::Ok);
@ -274,7 +274,7 @@ TEST_CASE("copyArray()") {
} }
SECTION("ElementProxy -> int[]") { SECTION("ElementProxy -> int[]") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
char json[] = "[[1,2,3]]"; char json[] = "[[1,2,3]]";
DeserializationError err = deserializeJson(doc, json); DeserializationError err = deserializeJson(doc, json);
CHECK(err == DeserializationError::Ok); CHECK(err == DeserializationError::Ok);
@ -290,7 +290,7 @@ TEST_CASE("copyArray()") {
} }
SECTION("JsonArray -> int[][]") { SECTION("JsonArray -> int[][]") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
char json[] = "[[1,2],[3],[4]]"; char json[] = "[[1,2],[3],[4]]";
DeserializationError err = deserializeJson(doc, json); DeserializationError err = deserializeJson(doc, json);
@ -309,7 +309,7 @@ TEST_CASE("copyArray()") {
} }
SECTION("JsonDocument -> int[][]") { SECTION("JsonDocument -> int[][]") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
char json[] = "[[1,2],[3],[4]]"; char json[] = "[[1,2],[3],[4]]";
DeserializationError err = deserializeJson(doc, json); DeserializationError err = deserializeJson(doc, json);
@ -327,7 +327,7 @@ TEST_CASE("copyArray()") {
} }
SECTION("MemberProxy -> int[][]") { SECTION("MemberProxy -> int[][]") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
char json[] = "{\"data\":[[1,2],[3],[4]]}"; char json[] = "{\"data\":[[1,2],[3],[4]]}";
DeserializationError err = deserializeJson(doc, json); DeserializationError err = deserializeJson(doc, json);

View File

@ -6,7 +6,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("JsonArray basics") { TEST_CASE("JsonArray basics") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonArray array = doc.to<JsonArray>(); JsonArray array = doc.to<JsonArray>();
SECTION("CreateNestedArray") { SECTION("CreateNestedArray") {

View File

@ -6,11 +6,11 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("JsonArray::operator==()") { TEST_CASE("JsonArray::operator==()") {
DynamicJsonDocument doc1(4096); JsonDocument doc1(4096);
JsonArray array1 = doc1.to<JsonArray>(); JsonArray array1 = doc1.to<JsonArray>();
JsonArrayConst array1c = array1; JsonArrayConst array1c = array1;
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
JsonArray array2 = doc2.to<JsonArray>(); JsonArray array2 = doc2.to<JsonArray>();
JsonArrayConst array2c = array2; JsonArrayConst array2c = array2;

View File

@ -12,7 +12,7 @@ TEST_CASE("JsonArray::isNull()") {
} }
SECTION("returns false") { SECTION("returns false") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonArray arr = doc.to<JsonArray>(); JsonArray arr = doc.to<JsonArray>();
REQUIRE(arr.isNull() == false); REQUIRE(arr.isNull() == false);
} }
@ -25,7 +25,7 @@ TEST_CASE("JsonArrayConst::isNull()") {
} }
SECTION("returns false") { SECTION("returns false") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonArrayConst arr = doc.to<JsonArray>(); JsonArrayConst arr = doc.to<JsonArray>();
REQUIRE(arr.isNull() == false); REQUIRE(arr.isNull() == false);
} }
@ -38,7 +38,7 @@ TEST_CASE("JsonArray::operator bool()") {
} }
SECTION("returns true") { SECTION("returns true") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonArray arr = doc.to<JsonArray>(); JsonArray arr = doc.to<JsonArray>();
REQUIRE(static_cast<bool>(arr) == true); REQUIRE(static_cast<bool>(arr) == true);
} }
@ -51,7 +51,7 @@ TEST_CASE("JsonArrayConst::operator bool()") {
} }
SECTION("returns true") { SECTION("returns true") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonArrayConst arr = doc.to<JsonArray>(); JsonArrayConst arr = doc.to<JsonArray>();
REQUIRE(static_cast<bool>(arr) == true); REQUIRE(static_cast<bool>(arr) == true);
} }

View File

@ -7,7 +7,7 @@
template <typename TArray> template <typename TArray>
static void run_iterator_test() { static void run_iterator_test() {
DynamicJsonDocument doc(JSON_ARRAY_SIZE(2)); JsonDocument doc(JSON_ARRAY_SIZE(2));
JsonArray tmp = doc.to<JsonArray>(); JsonArray tmp = doc.to<JsonArray>();
tmp.add(12); tmp.add(12);
tmp.add(34); tmp.add(34);

View File

@ -6,7 +6,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("JsonArray::memoryUsage()") { TEST_CASE("JsonArray::memoryUsage()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonArray arr = doc.to<JsonArray>(); JsonArray arr = doc.to<JsonArray>();
SECTION("return 0 if uninitialized") { SECTION("return 0 if uninitialized") {

View File

@ -6,7 +6,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("JsonArray::nesting()") { TEST_CASE("JsonArray::nesting()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonArray arr = doc.to<JsonArray>(); JsonArray arr = doc.to<JsonArray>();
SECTION("return 0 if uninitialized") { SECTION("return 0 if uninitialized") {

View File

@ -6,7 +6,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("JsonArray::remove()") { TEST_CASE("JsonArray::remove()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonArray array = doc.to<JsonArray>(); JsonArray array = doc.to<JsonArray>();
array.add(1); array.add(1);
array.add(2); array.add(2);

View File

@ -6,7 +6,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("JsonArray::size()") { TEST_CASE("JsonArray::size()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonArray array = doc.to<JsonArray>(); JsonArray array = doc.to<JsonArray>();
SECTION("returns 0 is empty") { SECTION("returns 0 is empty") {

View File

@ -12,7 +12,7 @@ static void eraseString(std::string& str) {
} }
TEST_CASE("std::string") { TEST_CASE("std::string") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonArray array = doc.to<JsonArray>(); JsonArray array = doc.to<JsonArray>();
SECTION("add()") { SECTION("add()") {

View File

@ -7,7 +7,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("JsonArray::operator[]") { TEST_CASE("JsonArray::operator[]") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonArray array = doc.to<JsonArray>(); JsonArray array = doc.to<JsonArray>();
SECTION("Pad with null") { SECTION("Pad with null") {
@ -65,7 +65,7 @@ TEST_CASE("JsonArray::operator[]") {
} }
SECTION("nested array") { SECTION("nested array") {
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
JsonArray arr2 = doc2.to<JsonArray>(); JsonArray arr2 = doc2.to<JsonArray>();
array[0] = arr2; array[0] = arr2;
@ -76,7 +76,7 @@ TEST_CASE("JsonArray::operator[]") {
} }
SECTION("nested object") { SECTION("nested object") {
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
JsonObject obj = doc2.to<JsonObject>(); JsonObject obj = doc2.to<JsonObject>();
array[0] = obj; array[0] = obj;
@ -87,7 +87,7 @@ TEST_CASE("JsonArray::operator[]") {
} }
SECTION("array subscript") { SECTION("array subscript") {
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
JsonArray arr2 = doc2.to<JsonArray>(); JsonArray arr2 = doc2.to<JsonArray>();
const char* str = "hello"; const char* str = "hello";
@ -100,7 +100,7 @@ TEST_CASE("JsonArray::operator[]") {
SECTION("object subscript") { SECTION("object subscript") {
const char* str = "hello"; const char* str = "hello";
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
JsonObject obj = doc2.to<JsonObject>(); JsonObject obj = doc2.to<JsonObject>();
obj["x"] = str; obj["x"] = str;
@ -159,7 +159,7 @@ TEST_CASE("JsonArray::operator[]") {
} }
TEST_CASE("JsonArrayConst::operator[]") { TEST_CASE("JsonArrayConst::operator[]") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonArray array = doc.to<JsonArray>(); JsonArray array = doc.to<JsonArray>();
array.add(0); array.add(0);

View File

@ -6,7 +6,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("deserialize JSON array") { TEST_CASE("deserialize JSON array") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
SECTION("An empty array") { SECTION("An empty array") {
DeserializationError err = deserializeJson(doc, "[]"); DeserializationError err = deserializeJson(doc, "[]");
@ -254,7 +254,7 @@ TEST_CASE("deserialize JSON array") {
TEST_CASE("deserialize JSON array under memory constraints") { TEST_CASE("deserialize JSON array under memory constraints") {
SECTION("buffer of the right size for an empty array") { SECTION("buffer of the right size for an empty array") {
DynamicJsonDocument doc(JSON_ARRAY_SIZE(0)); JsonDocument doc(JSON_ARRAY_SIZE(0));
char input[] = "[]"; char input[] = "[]";
DeserializationError err = deserializeJson(doc, input); DeserializationError err = deserializeJson(doc, input);
@ -263,7 +263,7 @@ TEST_CASE("deserialize JSON array under memory constraints") {
} }
SECTION("buffer too small for an array with one element") { SECTION("buffer too small for an array with one element") {
DynamicJsonDocument doc(JSON_ARRAY_SIZE(0)); JsonDocument doc(JSON_ARRAY_SIZE(0));
char input[] = "[1]"; char input[] = "[1]";
DeserializationError err = deserializeJson(doc, input); DeserializationError err = deserializeJson(doc, input);
@ -272,7 +272,7 @@ TEST_CASE("deserialize JSON array under memory constraints") {
} }
SECTION("buffer of the right size for an array with one element") { SECTION("buffer of the right size for an array with one element") {
DynamicJsonDocument doc(JSON_ARRAY_SIZE(1)); JsonDocument doc(JSON_ARRAY_SIZE(1));
char input[] = "[1]"; char input[] = "[1]";
DeserializationError err = deserializeJson(doc, input); DeserializationError err = deserializeJson(doc, input);
@ -281,7 +281,7 @@ TEST_CASE("deserialize JSON array under memory constraints") {
} }
SECTION("buffer too small for an array with a nested object") { SECTION("buffer too small for an array with a nested object") {
DynamicJsonDocument doc(JSON_ARRAY_SIZE(0) + JSON_OBJECT_SIZE(0)); JsonDocument doc(JSON_ARRAY_SIZE(0) + JSON_OBJECT_SIZE(0));
char input[] = "[{}]"; char input[] = "[{}]";
DeserializationError err = deserializeJson(doc, input); DeserializationError err = deserializeJson(doc, input);
@ -290,7 +290,7 @@ TEST_CASE("deserialize JSON array under memory constraints") {
} }
SECTION("buffer of the right size for an array with a nested object") { SECTION("buffer of the right size for an array with a nested object") {
DynamicJsonDocument doc(JSON_ARRAY_SIZE(1) + JSON_OBJECT_SIZE(0)); JsonDocument doc(JSON_ARRAY_SIZE(1) + JSON_OBJECT_SIZE(0));
char input[] = "[{}]"; char input[] = "[{}]";
DeserializationError err = deserializeJson(doc, input); DeserializationError err = deserializeJson(doc, input);
@ -299,7 +299,7 @@ TEST_CASE("deserialize JSON array under memory constraints") {
} }
SECTION("don't store space characters") { SECTION("don't store space characters") {
DynamicJsonDocument doc(100); JsonDocument doc(100);
deserializeJson(doc, " [ \"1234567\" ] "); deserializeJson(doc, " [ \"1234567\" ] ");
@ -309,7 +309,7 @@ TEST_CASE("deserialize JSON array under memory constraints") {
} }
SECTION("Should clear the JsonArray") { SECTION("Should clear the JsonArray") {
DynamicJsonDocument doc(JSON_ARRAY_SIZE(4)); JsonDocument doc(JSON_ARRAY_SIZE(4));
char input[] = "[1,2,3,4]"; char input[] = "[1,2,3,4]";
deserializeJson(doc, input); deserializeJson(doc, input);
@ -321,7 +321,7 @@ TEST_CASE("deserialize JSON array under memory constraints") {
} }
SECTION("buffer of the right size for an array with two element") { SECTION("buffer of the right size for an array with two element") {
DynamicJsonDocument doc(JSON_ARRAY_SIZE(2)); JsonDocument doc(JSON_ARRAY_SIZE(2));
char input[] = "[1,2]"; char input[] = "[1,2]";
DeserializationError err = deserializeJson(doc, input); DeserializationError err = deserializeJson(doc, input);

View File

@ -685,8 +685,8 @@ TEST_CASE("Filtering") {
for (size_t i = 0; i < sizeof(testCases) / sizeof(testCases[0]); i++) { for (size_t i = 0; i < sizeof(testCases) / sizeof(testCases[0]); i++) {
CAPTURE(i); CAPTURE(i);
DynamicJsonDocument filter(256); JsonDocument filter(256);
DynamicJsonDocument doc(256); JsonDocument doc(256);
TestCase& tc = testCases[i]; TestCase& tc = testCases[i];
CAPTURE(tc.filter); CAPTURE(tc.filter);
@ -706,10 +706,10 @@ TEST_CASE("Filtering") {
TEST_CASE("Zero-copy mode") { // issue #1697 TEST_CASE("Zero-copy mode") { // issue #1697
char input[] = "{\"include\":42,\"exclude\":666}"; char input[] = "{\"include\":42,\"exclude\":666}";
DynamicJsonDocument filter(256); JsonDocument filter(256);
filter["include"] = true; filter["include"] = true;
DynamicJsonDocument doc(256); JsonDocument doc(256);
DeserializationError err = DeserializationError err =
deserializeJson(doc, input, DeserializationOption::Filter(filter)); deserializeJson(doc, input, DeserializationOption::Filter(filter));
@ -718,8 +718,8 @@ TEST_CASE("Zero-copy mode") { // issue #1697
} }
TEST_CASE("Overloads") { TEST_CASE("Overloads") {
DynamicJsonDocument doc(256); JsonDocument doc(256);
DynamicJsonDocument filter(256); JsonDocument filter(256);
using namespace DeserializationOption; using namespace DeserializationOption;

View File

@ -18,7 +18,7 @@ TEST_CASE("Truncated JSON input") {
"{", "{a", "{a:", "{a:1", "{a:1,", "{a:1,"}; "{", "{a", "{a:", "{a:1", "{a:1,", "{a:1,"};
const size_t testCount = sizeof(testCases) / sizeof(testCases[0]); const size_t testCount = sizeof(testCases) / sizeof(testCases[0]);
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
for (size_t i = 0; i < testCount; i++) { for (size_t i = 0; i < testCount; i++) {
const char* input = testCases[i]; const char* input = testCases[i];

View File

@ -10,7 +10,7 @@
#include "CustomReader.hpp" #include "CustomReader.hpp"
TEST_CASE("deserializeJson(char*)") { TEST_CASE("deserializeJson(char*)") {
DynamicJsonDocument doc(1024); JsonDocument doc(1024);
SECTION("should not duplicate strings") { SECTION("should not duplicate strings") {
char input[] = "{\"hello\":\"world\"}"; char input[] = "{\"hello\":\"world\"}";
@ -25,7 +25,7 @@ TEST_CASE("deserializeJson(char*)") {
} }
TEST_CASE("deserializeJson(const std::string&)") { TEST_CASE("deserializeJson(const std::string&)") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
SECTION("should accept const string") { SECTION("should accept const string") {
const std::string input("[42]"); const std::string input("[42]");
@ -54,7 +54,7 @@ TEST_CASE("deserializeJson(const std::string&)") {
} }
TEST_CASE("deserializeJson(std::istream&)") { TEST_CASE("deserializeJson(std::istream&)") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
SECTION("array") { SECTION("array") {
std::istringstream json(" [ 42 ] "); std::istringstream json(" [ 42 ] ");
@ -125,7 +125,7 @@ TEST_CASE("deserializeJson(VLA)") {
char vla[i]; char vla[i];
strcpy(vla, "{\"a\":42}"); strcpy(vla, "{\"a\":42}");
DynamicJsonDocument doc(JSON_OBJECT_SIZE(1)); JsonDocument doc(JSON_OBJECT_SIZE(1));
DeserializationError err = deserializeJson(doc, vla); DeserializationError err = deserializeJson(doc, vla);
REQUIRE(err == DeserializationError::Ok); REQUIRE(err == DeserializationError::Ok);
@ -133,7 +133,7 @@ TEST_CASE("deserializeJson(VLA)") {
#endif #endif
TEST_CASE("deserializeJson(CustomReader)") { TEST_CASE("deserializeJson(CustomReader)") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
CustomReader reader("[4,2]"); CustomReader reader("[4,2]");
DeserializationError err = deserializeJson(doc, reader); DeserializationError err = deserializeJson(doc, reader);
@ -144,10 +144,10 @@ TEST_CASE("deserializeJson(CustomReader)") {
} }
TEST_CASE("deserializeJson(JsonDocument&, MemberProxy)") { TEST_CASE("deserializeJson(JsonDocument&, MemberProxy)") {
DynamicJsonDocument doc1(4096); JsonDocument doc1(4096);
doc1["payload"] = "[4,2]"; doc1["payload"] = "[4,2]";
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
DeserializationError err = deserializeJson(doc2, doc1["payload"]); DeserializationError err = deserializeJson(doc2, doc1["payload"]);
REQUIRE(err == DeserializationError::Ok); REQUIRE(err == DeserializationError::Ok);
@ -157,10 +157,10 @@ TEST_CASE("deserializeJson(JsonDocument&, MemberProxy)") {
} }
TEST_CASE("deserializeJson(JsonDocument&, JsonVariant)") { TEST_CASE("deserializeJson(JsonDocument&, JsonVariant)") {
DynamicJsonDocument doc1(4096); JsonDocument doc1(4096);
doc1["payload"] = "[4,2]"; doc1["payload"] = "[4,2]";
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
DeserializationError err = DeserializationError err =
deserializeJson(doc2, doc1["payload"].as<JsonVariant>()); deserializeJson(doc2, doc1["payload"].as<JsonVariant>());
@ -171,10 +171,10 @@ TEST_CASE("deserializeJson(JsonDocument&, JsonVariant)") {
} }
TEST_CASE("deserializeJson(JsonDocument&, JsonVariantConst)") { TEST_CASE("deserializeJson(JsonDocument&, JsonVariantConst)") {
DynamicJsonDocument doc1(4096); JsonDocument doc1(4096);
doc1["payload"] = "[4,2]"; doc1["payload"] = "[4,2]";
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
DeserializationError err = DeserializationError err =
deserializeJson(doc2, doc1["payload"].as<JsonVariantConst>()); deserializeJson(doc2, doc1["payload"].as<JsonVariantConst>());
@ -185,10 +185,10 @@ TEST_CASE("deserializeJson(JsonDocument&, JsonVariantConst)") {
} }
TEST_CASE("deserializeJson(JsonDocument&, ElementProxy)") { TEST_CASE("deserializeJson(JsonDocument&, ElementProxy)") {
DynamicJsonDocument doc1(4096); JsonDocument doc1(4096);
doc1[0] = "[4,2]"; doc1[0] = "[4,2]";
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
DeserializationError err = deserializeJson(doc2, doc1[0]); DeserializationError err = deserializeJson(doc2, doc1[0]);
REQUIRE(err == DeserializationError::Ok); REQUIRE(err == DeserializationError::Ok);

View File

@ -13,7 +13,7 @@ TEST_CASE("Invalid JSON input") {
"3}"}; "3}"};
const size_t testCount = sizeof(testCases) / sizeof(testCases[0]); const size_t testCount = sizeof(testCases) / sizeof(testCases[0]);
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
for (size_t i = 0; i < testCount; i++) { for (size_t i = 0; i < testCount; i++) {
const char* input = testCases[i]; const char* input = testCases[i];
@ -30,7 +30,7 @@ TEST_CASE("Invalid JSON input that should pass") {
}; };
const size_t testCount = sizeof(testCases) / sizeof(testCases[0]); const size_t testCount = sizeof(testCases) / sizeof(testCases[0]);
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
for (size_t i = 0; i < testCount; i++) { for (size_t i = 0; i < testCount; i++) {
const char* input = testCases[i]; const char* input = testCases[i];

View File

@ -7,8 +7,8 @@
using namespace Catch::Matchers; using namespace Catch::Matchers;
TEST_CASE("deserializeJson(DynamicJsonDocument&)") { TEST_CASE("deserializeJson(JsonDocument&)") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
SECTION("Edge cases") { SECTION("Edge cases") {
SECTION("null char*") { SECTION("null char*") {

View File

@ -12,7 +12,7 @@
REQUIRE(DeserializationError::TooDeep == expression); REQUIRE(DeserializationError::TooDeep == expression);
TEST_CASE("JsonDeserializer nesting") { TEST_CASE("JsonDeserializer nesting") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
SECTION("Input = const char*") { SECTION("Input = const char*") {
SECTION("limit = 0") { SECTION("limit = 0") {

View File

@ -16,7 +16,7 @@ using ArduinoJson::detail::isnan;
} // namespace my } // namespace my
TEST_CASE("deserialize an integer") { TEST_CASE("deserialize an integer") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
SECTION("Integer") { SECTION("Integer") {
SECTION("0") { SECTION("0") {

View File

@ -6,7 +6,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("deserialize JSON object") { TEST_CASE("deserialize JSON object") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
SECTION("An empty object") { SECTION("An empty object") {
DeserializationError err = deserializeJson(doc, "{}"); DeserializationError err = deserializeJson(doc, "{}");
@ -316,7 +316,7 @@ TEST_CASE("deserialize JSON object") {
TEST_CASE("deserialize JSON object under memory constraints") { TEST_CASE("deserialize JSON object under memory constraints") {
SECTION("buffer for the right size for an empty object") { SECTION("buffer for the right size for an empty object") {
DynamicJsonDocument doc(JSON_OBJECT_SIZE(0)); JsonDocument doc(JSON_OBJECT_SIZE(0));
char input[] = "{}"; char input[] = "{}";
DeserializationError err = deserializeJson(doc, input); DeserializationError err = deserializeJson(doc, input);
@ -325,7 +325,7 @@ TEST_CASE("deserialize JSON object under memory constraints") {
} }
SECTION("buffer too small for an empty object") { SECTION("buffer too small for an empty object") {
DynamicJsonDocument doc(JSON_OBJECT_SIZE(0)); JsonDocument doc(JSON_OBJECT_SIZE(0));
char input[] = "{\"a\":1}"; char input[] = "{\"a\":1}";
DeserializationError err = deserializeJson(doc, input); DeserializationError err = deserializeJson(doc, input);
@ -334,7 +334,7 @@ TEST_CASE("deserialize JSON object under memory constraints") {
} }
SECTION("buffer of the right size for an object with one member") { SECTION("buffer of the right size for an object with one member") {
DynamicJsonDocument doc(JSON_OBJECT_SIZE(1)); JsonDocument doc(JSON_OBJECT_SIZE(1));
char input[] = "{\"a\":1}"; char input[] = "{\"a\":1}";
DeserializationError err = deserializeJson(doc, input); DeserializationError err = deserializeJson(doc, input);
@ -343,7 +343,7 @@ TEST_CASE("deserialize JSON object under memory constraints") {
} }
SECTION("buffer too small for an object with a nested array") { SECTION("buffer too small for an object with a nested array") {
DynamicJsonDocument doc(JSON_OBJECT_SIZE(0) + JSON_ARRAY_SIZE(0)); JsonDocument doc(JSON_OBJECT_SIZE(0) + JSON_ARRAY_SIZE(0));
char input[] = "{\"a\":[]}"; char input[] = "{\"a\":[]}";
DeserializationError err = deserializeJson(doc, input); DeserializationError err = deserializeJson(doc, input);
@ -352,7 +352,7 @@ TEST_CASE("deserialize JSON object under memory constraints") {
} }
SECTION("buffer of the right size for an object with a nested array") { SECTION("buffer of the right size for an object with a nested array") {
DynamicJsonDocument doc(JSON_OBJECT_SIZE(1) + JSON_ARRAY_SIZE(0)); JsonDocument doc(JSON_OBJECT_SIZE(1) + JSON_ARRAY_SIZE(0));
char input[] = "{\"a\":[]}"; char input[] = "{\"a\":[]}";
DeserializationError err = deserializeJson(doc, input); DeserializationError err = deserializeJson(doc, input);
@ -361,7 +361,7 @@ TEST_CASE("deserialize JSON object under memory constraints") {
} }
SECTION("Should clear the JsonObject") { SECTION("Should clear the JsonObject") {
DynamicJsonDocument doc(JSON_OBJECT_SIZE(1)); JsonDocument doc(JSON_OBJECT_SIZE(1));
char input[] = "{\"hello\":\"world\"}"; char input[] = "{\"hello\":\"world\"}";
deserializeJson(doc, input); deserializeJson(doc, input);

View File

@ -35,7 +35,7 @@ TEST_CASE("Valid JSON strings value") {
}; };
const size_t testCount = sizeof(testCases) / sizeof(testCases[0]); const size_t testCount = sizeof(testCases) / sizeof(testCases[0]);
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
for (size_t i = 0; i < testCount; i++) { for (size_t i = 0; i < testCount; i++) {
const TestCase& testCase = testCases[i]; const TestCase& testCase = testCases[i];
@ -47,7 +47,7 @@ TEST_CASE("Valid JSON strings value") {
} }
TEST_CASE("\\u0000") { TEST_CASE("\\u0000") {
DynamicJsonDocument doc(200); JsonDocument doc(200);
DeserializationError err = deserializeJson(doc, "\"wx\\u0000yz\""); DeserializationError err = deserializeJson(doc, "\"wx\\u0000yz\"");
REQUIRE(err == DeserializationError::Ok); REQUIRE(err == DeserializationError::Ok);
@ -68,7 +68,7 @@ TEST_CASE("Truncated JSON string") {
const char* testCases[] = {"\"hello", "\'hello", "'\\u", "'\\u00", "'\\u000"}; const char* testCases[] = {"\"hello", "\'hello", "'\\u", "'\\u00", "'\\u000"};
const size_t testCount = sizeof(testCases) / sizeof(testCases[0]); const size_t testCount = sizeof(testCases) / sizeof(testCases[0]);
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
for (size_t i = 0; i < testCount; i++) { for (size_t i = 0; i < testCount; i++) {
const char* input = testCases[i]; const char* input = testCases[i];
@ -83,7 +83,7 @@ TEST_CASE("Invalid JSON string") {
"'\\u000G'", "'\\u000/'", "'\\x1234'"}; "'\\u000G'", "'\\u000/'", "'\\x1234'"};
const size_t testCount = sizeof(testCases) / sizeof(testCases[0]); const size_t testCount = sizeof(testCases) / sizeof(testCases[0]);
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
for (size_t i = 0; i < testCount; i++) { for (size_t i = 0; i < testCount; i++) {
const char* input = testCases[i]; const char* input = testCases[i];
@ -93,7 +93,7 @@ TEST_CASE("Invalid JSON string") {
} }
TEST_CASE("Not enough room to save the key") { TEST_CASE("Not enough room to save the key") {
DynamicJsonDocument doc(JSON_OBJECT_SIZE(1) + 8); JsonDocument doc(JSON_OBJECT_SIZE(1) + 8);
SECTION("Quoted string") { SECTION("Quoted string") {
REQUIRE(deserializeJson(doc, "{\"example\":1}") == REQUIRE(deserializeJson(doc, "{\"example\":1}") ==
@ -115,7 +115,7 @@ TEST_CASE("Not enough room to save the key") {
TEST_CASE("Empty memory pool") { TEST_CASE("Empty memory pool") {
// NOLINTNEXTLINE(clang-analyzer-optin.portability.UnixAPI) // NOLINTNEXTLINE(clang-analyzer-optin.portability.UnixAPI)
DynamicJsonDocument doc(0); JsonDocument doc(0);
SECTION("Input is const char*") { SECTION("Input is const char*") {
REQUIRE(deserializeJson(doc, "\"hello\"") == REQUIRE(deserializeJson(doc, "\"hello\"") ==

View File

@ -9,7 +9,7 @@ add_executable(JsonDocumentTests
compare.cpp compare.cpp
containsKey.cpp containsKey.cpp
createNested.cpp createNested.cpp
DynamicJsonDocument.cpp JsonDocument.cpp
ElementProxy.cpp ElementProxy.cpp
isNull.cpp isNull.cpp
issue1120.cpp issue1120.cpp

View File

@ -8,7 +8,7 @@
typedef ArduinoJson::detail::ElementProxy<JsonDocument&> ElementProxy; typedef ArduinoJson::detail::ElementProxy<JsonDocument&> ElementProxy;
TEST_CASE("ElementProxy::add()") { TEST_CASE("ElementProxy::add()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
doc.add(); doc.add();
ElementProxy ep = doc[0]; ElementProxy ep = doc[0];
@ -34,7 +34,7 @@ TEST_CASE("ElementProxy::add()") {
} }
TEST_CASE("ElementProxy::clear()") { TEST_CASE("ElementProxy::clear()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
doc.add(); doc.add();
ElementProxy ep = doc[0]; ElementProxy ep = doc[0];
@ -54,7 +54,7 @@ TEST_CASE("ElementProxy::clear()") {
} }
TEST_CASE("ElementProxy::operator==()") { TEST_CASE("ElementProxy::operator==()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
SECTION("1 vs 1") { SECTION("1 vs 1") {
doc.add(1); doc.add(1);
@ -94,7 +94,7 @@ TEST_CASE("ElementProxy::operator==()") {
} }
TEST_CASE("ElementProxy::remove()") { TEST_CASE("ElementProxy::remove()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
doc.add(); doc.add();
ElementProxy ep = doc[0]; ElementProxy ep = doc[0];
@ -142,7 +142,7 @@ TEST_CASE("ElementProxy::remove()") {
} }
TEST_CASE("ElementProxy::set()") { TEST_CASE("ElementProxy::set()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
ElementProxy ep = doc[0]; ElementProxy ep = doc[0];
SECTION("set(int)") { SECTION("set(int)") {
@ -167,7 +167,7 @@ TEST_CASE("ElementProxy::set()") {
} }
TEST_CASE("ElementProxy::size()") { TEST_CASE("ElementProxy::size()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
doc.add(); doc.add();
ElementProxy ep = doc[0]; ElementProxy ep = doc[0];
@ -189,7 +189,7 @@ TEST_CASE("ElementProxy::size()") {
} }
TEST_CASE("ElementProxy::memoryUsage()") { TEST_CASE("ElementProxy::memoryUsage()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
doc.add(); doc.add();
ElementProxy ep = doc[0]; ElementProxy ep = doc[0];
@ -204,7 +204,7 @@ TEST_CASE("ElementProxy::memoryUsage()") {
} }
TEST_CASE("ElementProxy::operator[]") { TEST_CASE("ElementProxy::operator[]") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
ElementProxy ep = doc[1]; ElementProxy ep = doc[1];
SECTION("set member") { SECTION("set member") {
@ -221,7 +221,7 @@ TEST_CASE("ElementProxy::operator[]") {
} }
TEST_CASE("ElementProxy cast to JsonVariantConst") { TEST_CASE("ElementProxy cast to JsonVariantConst") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
doc[0] = "world"; doc[0] = "world";
const ElementProxy ep = doc[0]; const ElementProxy ep = doc[0];
@ -232,7 +232,7 @@ TEST_CASE("ElementProxy cast to JsonVariantConst") {
} }
TEST_CASE("ElementProxy cast to JsonVariant") { TEST_CASE("ElementProxy cast to JsonVariant") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
doc[0] = "world"; doc[0] = "world";
ElementProxy ep = doc[0]; ElementProxy ep = doc[0];
@ -247,7 +247,7 @@ TEST_CASE("ElementProxy cast to JsonVariant") {
} }
TEST_CASE("ElementProxy::shallowCopy()") { TEST_CASE("ElementProxy::shallowCopy()") {
DynamicJsonDocument doc1(1024), doc2(1024); JsonDocument doc1(1024), doc2(1024);
doc2["hello"] = "world"; doc2["hello"] = "world";
doc1[0].shallowCopy(doc2); doc1[0].shallowCopy(doc2);

View File

@ -13,8 +13,8 @@ static void REQUIRE_JSON(JsonDocument& doc, const std::string& expected) {
REQUIRE(json == expected); REQUIRE(json == expected);
} }
TEST_CASE("DynamicJsonDocument") { TEST_CASE("JsonDocument") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
SECTION("serializeJson()") { SECTION("serializeJson()") {
JsonObject obj = doc.to<JsonObject>(); JsonObject obj = doc.to<JsonObject>();
@ -49,12 +49,12 @@ TEST_CASE("DynamicJsonDocument") {
SECTION("capacity()") { SECTION("capacity()") {
SECTION("matches constructor argument") { SECTION("matches constructor argument") {
DynamicJsonDocument doc2(256); JsonDocument doc2(256);
REQUIRE(doc2.capacity() == 256); REQUIRE(doc2.capacity() == 256);
} }
SECTION("rounds up constructor argument") { SECTION("rounds up constructor argument") {
DynamicJsonDocument doc2(253); JsonDocument doc2(253);
REQUIRE(doc2.capacity() == 256); REQUIRE(doc2.capacity() == 256);
} }
} }
@ -82,12 +82,12 @@ TEST_CASE("DynamicJsonDocument") {
} }
} }
TEST_CASE("DynamicJsonDocument constructor") { TEST_CASE("JsonDocument constructor") {
SECTION("Copy constructor") { SECTION("Copy constructor") {
DynamicJsonDocument doc1(1234); JsonDocument doc1(1234);
deserializeJson(doc1, "{\"hello\":\"world\"}"); deserializeJson(doc1, "{\"hello\":\"world\"}");
DynamicJsonDocument doc2 = doc1; JsonDocument doc2 = doc1;
REQUIRE_JSON(doc2, "{\"hello\":\"world\"}"); REQUIRE_JSON(doc2, "{\"hello\":\"world\"}");
@ -95,43 +95,43 @@ TEST_CASE("DynamicJsonDocument constructor") {
} }
SECTION("Construct from JsonObject") { SECTION("Construct from JsonObject") {
DynamicJsonDocument doc1(200); JsonDocument doc1(200);
JsonObject obj = doc1.to<JsonObject>(); JsonObject obj = doc1.to<JsonObject>();
obj["hello"] = "world"; obj["hello"] = "world";
DynamicJsonDocument doc2 = obj; JsonDocument doc2 = obj;
REQUIRE_JSON(doc2, "{\"hello\":\"world\"}"); REQUIRE_JSON(doc2, "{\"hello\":\"world\"}");
REQUIRE(doc2.capacity() == addPadding(doc1.memoryUsage())); REQUIRE(doc2.capacity() == addPadding(doc1.memoryUsage()));
} }
SECTION("Construct from JsonArray") { SECTION("Construct from JsonArray") {
DynamicJsonDocument doc1(200); JsonDocument doc1(200);
JsonArray arr = doc1.to<JsonArray>(); JsonArray arr = doc1.to<JsonArray>();
arr.add("hello"); arr.add("hello");
DynamicJsonDocument doc2 = arr; JsonDocument doc2 = arr;
REQUIRE_JSON(doc2, "[\"hello\"]"); REQUIRE_JSON(doc2, "[\"hello\"]");
REQUIRE(doc2.capacity() == addPadding(doc1.memoryUsage())); REQUIRE(doc2.capacity() == addPadding(doc1.memoryUsage()));
} }
SECTION("Construct from JsonVariant") { SECTION("Construct from JsonVariant") {
DynamicJsonDocument doc1(200); JsonDocument doc1(200);
deserializeJson(doc1, "42"); deserializeJson(doc1, "42");
DynamicJsonDocument doc2 = doc1.as<JsonVariant>(); JsonDocument doc2 = doc1.as<JsonVariant>();
REQUIRE_JSON(doc2, "42"); REQUIRE_JSON(doc2, "42");
REQUIRE(doc2.capacity() == addPadding(doc1.memoryUsage())); REQUIRE(doc2.capacity() == addPadding(doc1.memoryUsage()));
} }
} }
TEST_CASE("DynamicJsonDocument assignment") { TEST_CASE("JsonDocument assignment") {
SECTION("Copy assignment reallocates when capacity is smaller") { SECTION("Copy assignment reallocates when capacity is smaller") {
DynamicJsonDocument doc1(1234); JsonDocument doc1(1234);
deserializeJson(doc1, "{\"hello\":\"world\"}"); deserializeJson(doc1, "{\"hello\":\"world\"}");
DynamicJsonDocument doc2(8); JsonDocument doc2(8);
doc2 = doc1; doc2 = doc1;
@ -140,9 +140,9 @@ TEST_CASE("DynamicJsonDocument assignment") {
} }
SECTION("Copy assignment reallocates when capacity is larger") { SECTION("Copy assignment reallocates when capacity is larger") {
DynamicJsonDocument doc1(100); JsonDocument doc1(100);
deserializeJson(doc1, "{\"hello\":\"world\"}"); deserializeJson(doc1, "{\"hello\":\"world\"}");
DynamicJsonDocument doc2(1234); JsonDocument doc2(1234);
doc2 = doc1; doc2 = doc1;
@ -151,11 +151,11 @@ TEST_CASE("DynamicJsonDocument assignment") {
} }
SECTION("Assign from JsonObject") { SECTION("Assign from JsonObject") {
DynamicJsonDocument doc1(200); JsonDocument doc1(200);
JsonObject obj = doc1.to<JsonObject>(); JsonObject obj = doc1.to<JsonObject>();
obj["hello"] = "world"; obj["hello"] = "world";
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
doc2 = obj; doc2 = obj;
REQUIRE_JSON(doc2, "{\"hello\":\"world\"}"); REQUIRE_JSON(doc2, "{\"hello\":\"world\"}");
@ -163,11 +163,11 @@ TEST_CASE("DynamicJsonDocument assignment") {
} }
SECTION("Assign from JsonArray") { SECTION("Assign from JsonArray") {
DynamicJsonDocument doc1(200); JsonDocument doc1(200);
JsonArray arr = doc1.to<JsonArray>(); JsonArray arr = doc1.to<JsonArray>();
arr.add("hello"); arr.add("hello");
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
doc2 = arr; doc2 = arr;
REQUIRE_JSON(doc2, "[\"hello\"]"); REQUIRE_JSON(doc2, "[\"hello\"]");
@ -175,10 +175,10 @@ TEST_CASE("DynamicJsonDocument assignment") {
} }
SECTION("Assign from JsonVariant") { SECTION("Assign from JsonVariant") {
DynamicJsonDocument doc1(200); JsonDocument doc1(200);
deserializeJson(doc1, "42"); deserializeJson(doc1, "42");
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
doc2 = doc1.as<JsonVariant>(); doc2 = doc1.as<JsonVariant>();
REQUIRE_JSON(doc2, "42"); REQUIRE_JSON(doc2, "42");
@ -186,10 +186,10 @@ TEST_CASE("DynamicJsonDocument assignment") {
} }
SECTION("Assign from MemberProxy") { SECTION("Assign from MemberProxy") {
DynamicJsonDocument doc1(200); JsonDocument doc1(200);
doc1["value"] = 42; doc1["value"] = 42;
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
doc2 = doc1["value"]; doc2 = doc1["value"];
REQUIRE_JSON(doc2, "42"); REQUIRE_JSON(doc2, "42");
@ -197,10 +197,10 @@ TEST_CASE("DynamicJsonDocument assignment") {
} }
SECTION("Assign from ElementProxy") { SECTION("Assign from ElementProxy") {
DynamicJsonDocument doc1(200); JsonDocument doc1(200);
doc1[0] = 42; doc1[0] = 42;
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
doc2 = doc1[0]; doc2 = doc1[0];
REQUIRE_JSON(doc2, "42"); REQUIRE_JSON(doc2, "42");

View File

@ -9,7 +9,7 @@ typedef ArduinoJson::detail::MemberProxy<JsonDocument&, const char*>
MemberProxy; MemberProxy;
TEST_CASE("MemberProxy::add()") { TEST_CASE("MemberProxy::add()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
MemberProxy mp = doc["hello"]; MemberProxy mp = doc["hello"];
SECTION("add(int)") { SECTION("add(int)") {
@ -26,7 +26,7 @@ TEST_CASE("MemberProxy::add()") {
} }
TEST_CASE("MemberProxy::clear()") { TEST_CASE("MemberProxy::clear()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
MemberProxy mp = doc["hello"]; MemberProxy mp = doc["hello"];
SECTION("size goes back to zero") { SECTION("size goes back to zero") {
@ -45,7 +45,7 @@ TEST_CASE("MemberProxy::clear()") {
} }
TEST_CASE("MemberProxy::operator==()") { TEST_CASE("MemberProxy::operator==()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
SECTION("1 vs 1") { SECTION("1 vs 1") {
doc["a"] = 1; doc["a"] = 1;
@ -85,7 +85,7 @@ TEST_CASE("MemberProxy::operator==()") {
} }
TEST_CASE("MemberProxy::containsKey()") { TEST_CASE("MemberProxy::containsKey()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
MemberProxy mp = doc["hello"]; MemberProxy mp = doc["hello"];
SECTION("containsKey(const char*)") { SECTION("containsKey(const char*)") {
@ -104,7 +104,7 @@ TEST_CASE("MemberProxy::containsKey()") {
} }
TEST_CASE("MemberProxy::operator|()") { TEST_CASE("MemberProxy::operator|()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
SECTION("const char*") { SECTION("const char*") {
doc["a"] = "hello"; doc["a"] = "hello";
@ -127,7 +127,7 @@ TEST_CASE("MemberProxy::operator|()") {
JsonObject object = doc.to<JsonObject>(); JsonObject object = doc.to<JsonObject>();
object["hello"] = "world"; object["hello"] = "world";
DynamicJsonDocument emptyDoc(0); JsonDocument emptyDoc(0);
JsonObject anotherObject = object["hello"] | emptyDoc.to<JsonObject>(); JsonObject anotherObject = object["hello"] | emptyDoc.to<JsonObject>();
REQUIRE(anotherObject.isNull() == false); REQUIRE(anotherObject.isNull() == false);
@ -136,7 +136,7 @@ TEST_CASE("MemberProxy::operator|()") {
} }
TEST_CASE("MemberProxy::remove()") { TEST_CASE("MemberProxy::remove()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
MemberProxy mp = doc["hello"]; MemberProxy mp = doc["hello"];
SECTION("remove(int)") { SECTION("remove(int)") {
@ -183,7 +183,7 @@ TEST_CASE("MemberProxy::remove()") {
} }
TEST_CASE("MemberProxy::set()") { TEST_CASE("MemberProxy::set()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
MemberProxy mp = doc["hello"]; MemberProxy mp = doc["hello"];
SECTION("set(int)") { SECTION("set(int)") {
@ -208,7 +208,7 @@ TEST_CASE("MemberProxy::set()") {
} }
TEST_CASE("MemberProxy::size()") { TEST_CASE("MemberProxy::size()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
MemberProxy mp = doc["hello"]; MemberProxy mp = doc["hello"];
SECTION("returns 0") { SECTION("returns 0") {
@ -231,7 +231,7 @@ TEST_CASE("MemberProxy::size()") {
} }
TEST_CASE("MemberProxy::memoryUsage()") { TEST_CASE("MemberProxy::memoryUsage()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
MemberProxy mp = doc["hello"]; MemberProxy mp = doc["hello"];
SECTION("returns 0 when null") { SECTION("returns 0 when null") {
@ -245,7 +245,7 @@ TEST_CASE("MemberProxy::memoryUsage()") {
} }
TEST_CASE("MemberProxy::operator[]") { TEST_CASE("MemberProxy::operator[]") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
MemberProxy mp = doc["hello"]; MemberProxy mp = doc["hello"];
SECTION("set member") { SECTION("set member") {
@ -262,7 +262,7 @@ TEST_CASE("MemberProxy::operator[]") {
} }
TEST_CASE("MemberProxy cast to JsonVariantConst") { TEST_CASE("MemberProxy cast to JsonVariantConst") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
doc["hello"] = "world"; doc["hello"] = "world";
const MemberProxy mp = doc["hello"]; const MemberProxy mp = doc["hello"];
@ -273,7 +273,7 @@ TEST_CASE("MemberProxy cast to JsonVariantConst") {
} }
TEST_CASE("MemberProxy cast to JsonVariant") { TEST_CASE("MemberProxy cast to JsonVariant") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
doc["hello"] = "world"; doc["hello"] = "world";
MemberProxy mp = doc["hello"]; MemberProxy mp = doc["hello"];
@ -288,7 +288,7 @@ TEST_CASE("MemberProxy cast to JsonVariant") {
} }
TEST_CASE("MemberProxy::createNestedArray()") { TEST_CASE("MemberProxy::createNestedArray()") {
DynamicJsonDocument doc(1024); JsonDocument doc(1024);
JsonArray arr = doc["items"].createNestedArray(); JsonArray arr = doc["items"].createNestedArray();
arr.add(42); arr.add(42);
@ -296,7 +296,7 @@ TEST_CASE("MemberProxy::createNestedArray()") {
} }
TEST_CASE("MemberProxy::createNestedArray(key)") { TEST_CASE("MemberProxy::createNestedArray(key)") {
DynamicJsonDocument doc(1024); JsonDocument doc(1024);
JsonArray arr = doc["weather"].createNestedArray("temp"); JsonArray arr = doc["weather"].createNestedArray("temp");
arr.add(42); arr.add(42);
@ -304,7 +304,7 @@ TEST_CASE("MemberProxy::createNestedArray(key)") {
} }
TEST_CASE("MemberProxy::createNestedObject()") { TEST_CASE("MemberProxy::createNestedObject()") {
DynamicJsonDocument doc(1024); JsonDocument doc(1024);
JsonObject obj = doc["items"].createNestedObject(); JsonObject obj = doc["items"].createNestedObject();
obj["value"] = 42; obj["value"] = 42;
@ -312,7 +312,7 @@ TEST_CASE("MemberProxy::createNestedObject()") {
} }
TEST_CASE("MemberProxy::createNestedObject(key)") { TEST_CASE("MemberProxy::createNestedObject(key)") {
DynamicJsonDocument doc(1024); JsonDocument doc(1024);
JsonObject obj = doc["status"].createNestedObject("weather"); JsonObject obj = doc["status"].createNestedObject("weather");
obj["temp"] = 42; obj["temp"] = 42;
@ -320,7 +320,7 @@ TEST_CASE("MemberProxy::createNestedObject(key)") {
} }
TEST_CASE("MemberProxy::shallowCopy()") { TEST_CASE("MemberProxy::shallowCopy()") {
DynamicJsonDocument doc1(1024), doc2(1024); JsonDocument doc1(1024), doc2(1024);
doc2["hello"] = "world"; doc2["hello"] = "world";
doc1["obj"].shallowCopy(doc2); doc1["obj"].shallowCopy(doc2);

View File

@ -6,7 +6,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("JsonDocument::add()") { TEST_CASE("JsonDocument::add()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
SECTION("integer") { SECTION("integer") {
doc.add(42); doc.add(42);

View File

@ -60,21 +60,21 @@ class ControllableAllocator : public Allocator {
bool _enabled; bool _enabled;
}; };
TEST_CASE("DynamicJsonDocument's allocator") { TEST_CASE("JsonDocument's allocator") {
SpyingAllocator spyingAllocator; SpyingAllocator spyingAllocator;
ControllableAllocator controllableAllocator; ControllableAllocator controllableAllocator;
SECTION("Construct/Destruct") { SECTION("Construct/Destruct") {
{ DynamicJsonDocument doc(4096, &spyingAllocator); } { JsonDocument doc(4096, &spyingAllocator); }
REQUIRE(spyingAllocator.log() == "A4096F"); REQUIRE(spyingAllocator.log() == "A4096F");
} }
SECTION("Copy construct") { SECTION("Copy construct") {
{ {
DynamicJsonDocument doc1(4096, &spyingAllocator); JsonDocument doc1(4096, &spyingAllocator);
doc1.set(std::string("The size of this string is 32!!")); doc1.set(std::string("The size of this string is 32!!"));
DynamicJsonDocument doc2(doc1); JsonDocument doc2(doc1);
REQUIRE(doc1.as<std::string>() == "The size of this string is 32!!"); REQUIRE(doc1.as<std::string>() == "The size of this string is 32!!");
REQUIRE(doc2.as<std::string>() == "The size of this string is 32!!"); REQUIRE(doc2.as<std::string>() == "The size of this string is 32!!");
@ -85,10 +85,10 @@ TEST_CASE("DynamicJsonDocument's allocator") {
SECTION("Move construct") { SECTION("Move construct") {
{ {
DynamicJsonDocument doc1(4096, &spyingAllocator); JsonDocument doc1(4096, &spyingAllocator);
doc1.set(std::string("The size of this string is 32!!")); doc1.set(std::string("The size of this string is 32!!"));
DynamicJsonDocument doc2(std::move(doc1)); JsonDocument doc2(std::move(doc1));
REQUIRE(doc2.as<std::string>() == "The size of this string is 32!!"); REQUIRE(doc2.as<std::string>() == "The size of this string is 32!!");
REQUIRE(doc1.as<std::string>() == "null"); REQUIRE(doc1.as<std::string>() == "null");
@ -100,9 +100,9 @@ TEST_CASE("DynamicJsonDocument's allocator") {
SECTION("Copy assign larger") { SECTION("Copy assign larger") {
{ {
DynamicJsonDocument doc1(4096, &spyingAllocator); JsonDocument doc1(4096, &spyingAllocator);
doc1.set(std::string("The size of this string is 32!!")); doc1.set(std::string("The size of this string is 32!!"));
DynamicJsonDocument doc2(8, &spyingAllocator); JsonDocument doc2(8, &spyingAllocator);
doc2 = doc1; doc2 = doc1;
@ -115,9 +115,9 @@ TEST_CASE("DynamicJsonDocument's allocator") {
SECTION("Copy assign smaller") { SECTION("Copy assign smaller") {
{ {
DynamicJsonDocument doc1(1024, &spyingAllocator); JsonDocument doc1(1024, &spyingAllocator);
doc1.set(std::string("The size of this string is 32!!")); doc1.set(std::string("The size of this string is 32!!"));
DynamicJsonDocument doc2(4096, &spyingAllocator); JsonDocument doc2(4096, &spyingAllocator);
doc2 = doc1; doc2 = doc1;
@ -130,9 +130,9 @@ TEST_CASE("DynamicJsonDocument's allocator") {
SECTION("Copy assign same size") { SECTION("Copy assign same size") {
{ {
DynamicJsonDocument doc1(1024, &spyingAllocator); JsonDocument doc1(1024, &spyingAllocator);
doc1.set(std::string("The size of this string is 32!!")); doc1.set(std::string("The size of this string is 32!!"));
DynamicJsonDocument doc2(1024, &spyingAllocator); JsonDocument doc2(1024, &spyingAllocator);
doc2 = doc1; doc2 = doc1;
@ -145,9 +145,9 @@ TEST_CASE("DynamicJsonDocument's allocator") {
SECTION("Move assign") { SECTION("Move assign") {
{ {
DynamicJsonDocument doc1(4096, &spyingAllocator); JsonDocument doc1(4096, &spyingAllocator);
doc1.set(std::string("The size of this string is 32!!")); doc1.set(std::string("The size of this string is 32!!"));
DynamicJsonDocument doc2(8, &spyingAllocator); JsonDocument doc2(8, &spyingAllocator);
doc2 = std::move(doc1); doc2 = std::move(doc1);
@ -160,7 +160,7 @@ TEST_CASE("DynamicJsonDocument's allocator") {
} }
SECTION("garbageCollect()") { SECTION("garbageCollect()") {
DynamicJsonDocument doc(4096, &controllableAllocator); JsonDocument doc(4096, &controllableAllocator);
SECTION("when allocation succeeds") { SECTION("when allocation succeeds") {
deserializeJson(doc, "{\"blanket\":1,\"dancing\":2}"); deserializeJson(doc, "{\"blanket\":1,\"dancing\":2}");

View File

@ -8,7 +8,7 @@
#include <string> #include <string>
TEST_CASE("Implicit cast to JsonVariant") { TEST_CASE("Implicit cast to JsonVariant") {
DynamicJsonDocument doc(128); JsonDocument doc(128);
doc["hello"] = "world"; doc["hello"] = "world";

View File

@ -5,9 +5,9 @@
#include <ArduinoJson.h> #include <ArduinoJson.h>
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("DynamicJsonDocument::operator==(const DynamicJsonDocument&)") { TEST_CASE("JsonDocument::operator==(const JsonDocument&)") {
DynamicJsonDocument doc1(4096); JsonDocument doc1(4096);
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
SECTION("Empty") { SECTION("Empty") {
REQUIRE(doc1 == doc2); REQUIRE(doc1 == doc2);
@ -27,29 +27,3 @@ TEST_CASE("DynamicJsonDocument::operator==(const DynamicJsonDocument&)") {
REQUIRE(doc1 != doc2); REQUIRE(doc1 != doc2);
} }
} }
TEST_CASE("JsonDocument::operator==(const JsonDocument&)") {
DynamicJsonDocument doc1(256);
DynamicJsonDocument doc2(256);
const JsonDocument& ref1 = doc1;
const JsonDocument& ref2 = doc2;
SECTION("Empty") {
REQUIRE(ref1 == ref2);
REQUIRE_FALSE(ref1 != ref2);
}
SECTION("With same object") {
doc1["hello"] = "world";
doc2["hello"] = "world";
REQUIRE(ref1 == ref2);
REQUIRE_FALSE(ref1 != ref2);
}
SECTION("With different object") {
doc1["hello"] = "world";
doc2["world"] = "hello";
REQUIRE_FALSE(ref1 == ref2);
REQUIRE(ref1 != ref2);
}
}

View File

@ -6,7 +6,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("JsonDocument::containsKey()") { TEST_CASE("JsonDocument::containsKey()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
SECTION("returns true on object") { SECTION("returns true on object") {
doc["hello"] = "world"; doc["hello"] = "world";

View File

@ -6,7 +6,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("JsonDocument::createNestedArray()") { TEST_CASE("JsonDocument::createNestedArray()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
SECTION("promotes to array") { SECTION("promotes to array") {
doc.createNestedArray(); doc.createNestedArray();
@ -16,7 +16,7 @@ TEST_CASE("JsonDocument::createNestedArray()") {
} }
TEST_CASE("JsonDocument::createNestedArray(key)") { TEST_CASE("JsonDocument::createNestedArray(key)") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
SECTION("key is const char*") { SECTION("key is const char*") {
SECTION("promotes to object") { SECTION("promotes to object") {
@ -36,7 +36,7 @@ TEST_CASE("JsonDocument::createNestedArray(key)") {
} }
TEST_CASE("JsonDocument::createNestedObject()") { TEST_CASE("JsonDocument::createNestedObject()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
SECTION("promotes to array") { SECTION("promotes to array") {
doc.createNestedObject(); doc.createNestedObject();
@ -46,7 +46,7 @@ TEST_CASE("JsonDocument::createNestedObject()") {
} }
TEST_CASE("JsonDocument::createNestedObject(key)") { TEST_CASE("JsonDocument::createNestedObject(key)") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
SECTION("key is const char*") { SECTION("key is const char*") {
SECTION("promotes to object") { SECTION("promotes to object") {

View File

@ -6,7 +6,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("JsonDocument::isNull()") { TEST_CASE("JsonDocument::isNull()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
SECTION("returns true if uninitialized") { SECTION("returns true if uninitialized") {
REQUIRE(doc.isNull() == true); REQUIRE(doc.isNull() == true);

View File

@ -3,7 +3,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("Issue #1120") { TEST_CASE("Issue #1120") {
DynamicJsonDocument doc(500); JsonDocument doc(500);
constexpr char str[] = constexpr char str[] =
"{\"contents\":[{\"module\":\"Packet\"},{\"module\":\"Analog\"}]}"; "{\"contents\":[{\"module\":\"Packet\"},{\"module\":\"Analog\"}]}";
deserializeJson(doc, str); deserializeJson(doc, str);

View File

@ -6,7 +6,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("JsonDocument::nesting()") { TEST_CASE("JsonDocument::nesting()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
SECTION("return 0 if uninitialized") { SECTION("return 0 if uninitialized") {
REQUIRE(doc.nesting() == 0); REQUIRE(doc.nesting() == 0);

View File

@ -7,68 +7,68 @@
TEST_CASE("JsonDocument::overflowed()") { TEST_CASE("JsonDocument::overflowed()") {
SECTION("returns false on a fresh object") { SECTION("returns false on a fresh object") {
DynamicJsonDocument doc(0); JsonDocument doc(0);
CHECK(doc.overflowed() == false); CHECK(doc.overflowed() == false);
} }
SECTION("returns true after a failed insertion") { SECTION("returns true after a failed insertion") {
DynamicJsonDocument doc(0); JsonDocument doc(0);
doc.add(0); doc.add(0);
CHECK(doc.overflowed() == true); CHECK(doc.overflowed() == true);
} }
SECTION("returns false after successful insertion") { SECTION("returns false after successful insertion") {
DynamicJsonDocument doc(JSON_ARRAY_SIZE(1)); JsonDocument doc(JSON_ARRAY_SIZE(1));
doc.add(0); doc.add(0);
CHECK(doc.overflowed() == false); CHECK(doc.overflowed() == false);
} }
SECTION("returns true after a failed string copy") { SECTION("returns true after a failed string copy") {
DynamicJsonDocument doc(JSON_ARRAY_SIZE(1)); JsonDocument doc(JSON_ARRAY_SIZE(1));
doc.add(std::string("example")); doc.add(std::string("example"));
CHECK(doc.overflowed() == true); CHECK(doc.overflowed() == true);
} }
SECTION("returns false after a successful string copy") { SECTION("returns false after a successful string copy") {
DynamicJsonDocument doc(JSON_ARRAY_SIZE(1) + 8); JsonDocument doc(JSON_ARRAY_SIZE(1) + 8);
doc.add(std::string("example")); doc.add(std::string("example"));
CHECK(doc.overflowed() == false); CHECK(doc.overflowed() == false);
} }
SECTION("returns true after a failed member add") { SECTION("returns true after a failed member add") {
DynamicJsonDocument doc(1); JsonDocument doc(1);
doc["example"] = true; doc["example"] = true;
CHECK(doc.overflowed() == true); CHECK(doc.overflowed() == true);
} }
SECTION("returns true after a failed deserialization") { SECTION("returns true after a failed deserialization") {
DynamicJsonDocument doc(JSON_ARRAY_SIZE(1)); JsonDocument doc(JSON_ARRAY_SIZE(1));
deserializeJson(doc, "[\"example\"]"); deserializeJson(doc, "[\"example\"]");
CHECK(doc.overflowed() == true); CHECK(doc.overflowed() == true);
} }
SECTION("returns false after a successful deserialization") { SECTION("returns false after a successful deserialization") {
DynamicJsonDocument doc(JSON_ARRAY_SIZE(1) + 8); JsonDocument doc(JSON_ARRAY_SIZE(1) + 8);
deserializeJson(doc, "[\"example\"]"); deserializeJson(doc, "[\"example\"]");
CHECK(doc.overflowed() == false); CHECK(doc.overflowed() == false);
} }
SECTION("returns false after clear()") { SECTION("returns false after clear()") {
DynamicJsonDocument doc(0); JsonDocument doc(0);
doc.add(0); doc.add(0);
doc.clear(); doc.clear();
CHECK(doc.overflowed() == false); CHECK(doc.overflowed() == false);
} }
SECTION("remains false after shrinkToFit()") { SECTION("remains false after shrinkToFit()") {
DynamicJsonDocument doc(JSON_ARRAY_SIZE(1)); JsonDocument doc(JSON_ARRAY_SIZE(1));
doc.add(0); doc.add(0);
doc.shrinkToFit(); doc.shrinkToFit();
CHECK(doc.overflowed() == false); CHECK(doc.overflowed() == false);
} }
SECTION("remains true after shrinkToFit()") { SECTION("remains true after shrinkToFit()") {
DynamicJsonDocument doc(JSON_ARRAY_SIZE(1)); JsonDocument doc(JSON_ARRAY_SIZE(1));
doc.add(0); doc.add(0);
doc.add(0); doc.add(0);
doc.shrinkToFit(); doc.shrinkToFit();
@ -76,7 +76,7 @@ TEST_CASE("JsonDocument::overflowed()") {
} }
SECTION("return false after garbageCollect()") { SECTION("return false after garbageCollect()") {
DynamicJsonDocument doc(JSON_ARRAY_SIZE(1)); JsonDocument doc(JSON_ARRAY_SIZE(1));
doc.add(0); doc.add(0);
doc.add(0); doc.add(0);
doc.garbageCollect(); doc.garbageCollect();

View File

@ -6,7 +6,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("JsonDocument::remove()") { TEST_CASE("JsonDocument::remove()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
SECTION("remove(int)") { SECTION("remove(int)") {
doc.add(1); doc.add(1);

View File

@ -43,7 +43,7 @@ class ArmoredAllocator : public Allocator {
size_t _size; size_t _size;
}; };
void testShrinkToFit(DynamicJsonDocument& doc, std::string expected_json, void testShrinkToFit(JsonDocument& doc, std::string expected_json,
size_t expected_size) { size_t expected_size) {
// test twice: shrinkToFit() should be idempotent // test twice: shrinkToFit() should be idempotent
for (int i = 0; i < 2; i++) { for (int i = 0; i < 2; i++) {
@ -58,9 +58,9 @@ void testShrinkToFit(DynamicJsonDocument& doc, std::string expected_json,
} }
} }
TEST_CASE("DynamicJsonDocument::shrinkToFit()") { TEST_CASE("JsonDocument::shrinkToFit()") {
ArmoredAllocator armoredAllocator; ArmoredAllocator armoredAllocator;
DynamicJsonDocument doc(4096, &armoredAllocator); JsonDocument doc(4096, &armoredAllocator);
SECTION("null") { SECTION("null") {
testShrinkToFit(doc, "null", 0); testShrinkToFit(doc, "null", 0);

View File

@ -6,7 +6,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("JsonDocument::size()") { TEST_CASE("JsonDocument::size()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
SECTION("returns 0") { SECTION("returns 0") {
REQUIRE(doc.size() == 0); REQUIRE(doc.size() == 0);

View File

@ -6,7 +6,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("JsonDocument::operator[]") { TEST_CASE("JsonDocument::operator[]") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
const JsonDocument& cdoc = doc; const JsonDocument& cdoc = doc;
SECTION("object") { SECTION("object") {
@ -37,7 +37,7 @@ TEST_CASE("JsonDocument::operator[]") {
} }
TEST_CASE("JsonDocument automatically promotes to object") { TEST_CASE("JsonDocument automatically promotes to object") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
doc["one"]["two"]["three"] = 4; doc["one"]["two"]["three"] = 4;
@ -45,7 +45,7 @@ TEST_CASE("JsonDocument automatically promotes to object") {
} }
TEST_CASE("JsonDocument automatically promotes to array") { TEST_CASE("JsonDocument automatically promotes to array") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
doc[2] = 2; doc[2] = 2;

View File

@ -7,13 +7,13 @@
using namespace std; using namespace std;
TEST_CASE("std::swap") { TEST_CASE("std::swap") {
SECTION("DynamicJsonDocument*") { SECTION("JsonDocument*") {
DynamicJsonDocument *p1, *p2; JsonDocument *p1, *p2;
swap(p1, p2); // issue #1678 swap(p1, p2); // issue #1678
} }
SECTION("DynamicJsonDocument") { SECTION("JsonDocument") {
DynamicJsonDocument doc1(0x10), doc2(0x20); JsonDocument doc1(0x10), doc2(0x20);
doc1.set("hello"); doc1.set("hello");
doc2.set("world"); doc2.set("world");

View File

@ -14,7 +14,7 @@ TEST_CASE("JsonObject::clear()") {
} }
SECTION("Removes all elements") { SECTION("Removes all elements") {
DynamicJsonDocument doc(64); JsonDocument doc(64);
JsonObject obj = doc.to<JsonObject>(); JsonObject obj = doc.to<JsonObject>();
obj["hello"] = 1; obj["hello"] = 1;
obj["world"] = 2; obj["world"] = 2;

View File

@ -6,7 +6,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("Compare JsonObject with JsonObject") { TEST_CASE("Compare JsonObject with JsonObject") {
DynamicJsonDocument doc(512); JsonDocument doc(512);
SECTION("Compare with unbound") { SECTION("Compare with unbound") {
JsonObject object = doc.to<JsonObject>(); JsonObject object = doc.to<JsonObject>();
@ -82,7 +82,7 @@ TEST_CASE("Compare JsonObject with JsonObject") {
} }
TEST_CASE("Compare JsonObject with JsonVariant") { TEST_CASE("Compare JsonObject with JsonVariant") {
DynamicJsonDocument doc(512); JsonDocument doc(512);
SECTION("Compare with self") { SECTION("Compare with self") {
JsonObject object = doc.to<JsonObject>(); JsonObject object = doc.to<JsonObject>();
@ -153,7 +153,7 @@ TEST_CASE("Compare JsonObject with JsonVariant") {
} }
TEST_CASE("Compare JsonObject with JsonVariantConst") { TEST_CASE("Compare JsonObject with JsonVariantConst") {
DynamicJsonDocument doc(512); JsonDocument doc(512);
SECTION("Compare with unbound") { SECTION("Compare with unbound") {
JsonObject object = doc.to<JsonObject>(); JsonObject object = doc.to<JsonObject>();
@ -247,7 +247,7 @@ TEST_CASE("Compare JsonObject with JsonVariantConst") {
} }
TEST_CASE("Compare JsonObject with JsonObjectConst") { TEST_CASE("Compare JsonObject with JsonObjectConst") {
DynamicJsonDocument doc(512); JsonDocument doc(512);
SECTION("Compare with unbound") { SECTION("Compare with unbound") {
JsonObject object = doc.to<JsonObject>(); JsonObject object = doc.to<JsonObject>();
@ -347,7 +347,7 @@ TEST_CASE("Compare JsonObject with JsonObjectConst") {
} }
TEST_CASE("Compare JsonObjectConst with JsonObjectConst") { TEST_CASE("Compare JsonObjectConst with JsonObjectConst") {
DynamicJsonDocument doc(512); JsonDocument doc(512);
SECTION("Compare with unbound") { SECTION("Compare with unbound") {
JsonObject object = doc.to<JsonObject>(); JsonObject object = doc.to<JsonObject>();
@ -430,7 +430,7 @@ TEST_CASE("Compare JsonObjectConst with JsonObjectConst") {
} }
TEST_CASE("Compare JsonObjectConst with JsonVariant") { TEST_CASE("Compare JsonObjectConst with JsonVariant") {
DynamicJsonDocument doc(512); JsonDocument doc(512);
SECTION("Compare with self") { SECTION("Compare with self") {
JsonObject object = doc.to<JsonObject>(); JsonObject object = doc.to<JsonObject>();

View File

@ -6,7 +6,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("JsonObject::containsKey()") { TEST_CASE("JsonObject::containsKey()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonObject obj = doc.to<JsonObject>(); JsonObject obj = doc.to<JsonObject>();
obj["hello"] = 42; obj["hello"] = 42;

View File

@ -6,8 +6,8 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("JsonObject::set()") { TEST_CASE("JsonObject::set()") {
DynamicJsonDocument doc1(4096); JsonDocument doc1(4096);
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
JsonObject obj1 = doc1.to<JsonObject>(); JsonObject obj1 = doc1.to<JsonObject>();
JsonObject obj2 = doc2.to<JsonObject>(); JsonObject obj2 = doc2.to<JsonObject>();
@ -72,7 +72,7 @@ TEST_CASE("JsonObject::set()") {
} }
SECTION("destination too small to store the key") { SECTION("destination too small to store the key") {
DynamicJsonDocument doc3(JSON_OBJECT_SIZE(1)); JsonDocument doc3(JSON_OBJECT_SIZE(1));
JsonObject obj3 = doc3.to<JsonObject>(); JsonObject obj3 = doc3.to<JsonObject>();
obj1[std::string("hello")] = "world"; obj1[std::string("hello")] = "world";
@ -84,7 +84,7 @@ TEST_CASE("JsonObject::set()") {
} }
SECTION("destination too small to store the value") { SECTION("destination too small to store the value") {
DynamicJsonDocument doc3(JSON_OBJECT_SIZE(1)); JsonDocument doc3(JSON_OBJECT_SIZE(1));
JsonObject obj3 = doc3.to<JsonObject>(); JsonObject obj3 = doc3.to<JsonObject>();
obj1["hello"] = std::string("world"); obj1["hello"] = std::string("world");

View File

@ -6,7 +6,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("JsonObject::createNestedArray()") { TEST_CASE("JsonObject::createNestedArray()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonObject obj = doc.to<JsonObject>(); JsonObject obj = doc.to<JsonObject>();
SECTION("key is a const char*") { SECTION("key is a const char*") {

View File

@ -6,7 +6,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("JsonObject::createNestedObject()") { TEST_CASE("JsonObject::createNestedObject()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonObject obj = doc.to<JsonObject>(); JsonObject obj = doc.to<JsonObject>();
SECTION("key is a const char*") { SECTION("key is a const char*") {

View File

@ -6,11 +6,11 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("JsonObject::operator==()") { TEST_CASE("JsonObject::operator==()") {
DynamicJsonDocument doc1(4096); JsonDocument doc1(4096);
JsonObject obj1 = doc1.to<JsonObject>(); JsonObject obj1 = doc1.to<JsonObject>();
JsonObjectConst obj1c = obj1; JsonObjectConst obj1c = obj1;
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
JsonObject obj2 = doc2.to<JsonObject>(); JsonObject obj2 = doc2.to<JsonObject>();
JsonObjectConst obj2c = obj2; JsonObjectConst obj2c = obj2;

View File

@ -12,7 +12,7 @@ TEST_CASE("JsonObject::isNull()") {
} }
SECTION("returns false") { SECTION("returns false") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonObject obj = doc.to<JsonObject>(); JsonObject obj = doc.to<JsonObject>();
REQUIRE(obj.isNull() == false); REQUIRE(obj.isNull() == false);
} }
@ -25,7 +25,7 @@ TEST_CASE("JsonObjectConst::isNull()") {
} }
SECTION("returns false") { SECTION("returns false") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonObjectConst obj = doc.to<JsonObject>(); JsonObjectConst obj = doc.to<JsonObject>();
REQUIRE(obj.isNull() == false); REQUIRE(obj.isNull() == false);
} }
@ -38,7 +38,7 @@ TEST_CASE("JsonObject::operator bool()") {
} }
SECTION("returns true") { SECTION("returns true") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonObject obj = doc.to<JsonObject>(); JsonObject obj = doc.to<JsonObject>();
REQUIRE(static_cast<bool>(obj) == true); REQUIRE(static_cast<bool>(obj) == true);
} }
@ -51,7 +51,7 @@ TEST_CASE("JsonObjectConst::operator bool()") {
} }
SECTION("returns true") { SECTION("returns true") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonObjectConst obj = doc.to<JsonObject>(); JsonObjectConst obj = doc.to<JsonObject>();
REQUIRE(static_cast<bool>(obj) == true); REQUIRE(static_cast<bool>(obj) == true);
} }

View File

@ -8,7 +8,7 @@
using namespace Catch::Matchers; using namespace Catch::Matchers;
TEST_CASE("JsonObject::begin()/end()") { TEST_CASE("JsonObject::begin()/end()") {
DynamicJsonDocument doc(JSON_OBJECT_SIZE(2)); JsonDocument doc(JSON_OBJECT_SIZE(2));
JsonObject obj = doc.to<JsonObject>(); JsonObject obj = doc.to<JsonObject>();
obj["ab"] = 12; obj["ab"] = 12;
obj["cd"] = 34; obj["cd"] = 34;
@ -38,7 +38,7 @@ TEST_CASE("JsonObject::begin()/end()") {
} }
TEST_CASE("JsonObjectConst::begin()/end()") { TEST_CASE("JsonObjectConst::begin()/end()") {
DynamicJsonDocument doc(JSON_OBJECT_SIZE(2)); JsonDocument doc(JSON_OBJECT_SIZE(2));
JsonObject obj = doc.to<JsonObject>(); JsonObject obj = doc.to<JsonObject>();
obj["ab"] = 12; obj["ab"] = 12;
obj["cd"] = 34; obj["cd"] = 34;

View File

@ -7,7 +7,7 @@
#include <string> #include <string>
TEST_CASE("JsonObject::memoryUsage()") { TEST_CASE("JsonObject::memoryUsage()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonObject obj = doc.to<JsonObject>(); JsonObject obj = doc.to<JsonObject>();
SECTION("return 0 if uninitialized") { SECTION("return 0 if uninitialized") {

View File

@ -6,7 +6,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("JsonObject::nesting()") { TEST_CASE("JsonObject::nesting()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonObject obj = doc.to<JsonObject>(); JsonObject obj = doc.to<JsonObject>();
SECTION("return 0 if uninitialized") { SECTION("return 0 if uninitialized") {

View File

@ -7,7 +7,7 @@
#include <string> #include <string>
TEST_CASE("JsonObject::remove()") { TEST_CASE("JsonObject::remove()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonObject obj = doc.to<JsonObject>(); JsonObject obj = doc.to<JsonObject>();
obj["a"] = 0; obj["a"] = 0;
obj["b"] = 1; obj["b"] = 1;

View File

@ -7,7 +7,7 @@
#include <string> #include <string>
TEST_CASE("JsonObject::size()") { TEST_CASE("JsonObject::size()") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonObject obj = doc.to<JsonObject>(); JsonObject obj = doc.to<JsonObject>();
SECTION("initial size is zero") { SECTION("initial size is zero") {

View File

@ -12,7 +12,7 @@ static void eraseString(std::string& str) {
} }
TEST_CASE("std::string") { TEST_CASE("std::string") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
SECTION("operator[]") { SECTION("operator[]") {
char json[] = "{\"key\":\"value\"}"; char json[] = "{\"key\":\"value\"}";

View File

@ -6,7 +6,7 @@
#include <catch.hpp> #include <catch.hpp>
TEST_CASE("JsonObject::operator[]") { TEST_CASE("JsonObject::operator[]") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonObject obj = doc.to<JsonObject>(); JsonObject obj = doc.to<JsonObject>();
SECTION("int") { SECTION("int") {
@ -51,7 +51,7 @@ TEST_CASE("JsonObject::operator[]") {
} }
SECTION("array") { SECTION("array") {
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
JsonArray arr = doc2.to<JsonArray>(); JsonArray arr = doc2.to<JsonArray>();
obj["hello"] = arr; obj["hello"] = arr;
@ -62,7 +62,7 @@ TEST_CASE("JsonObject::operator[]") {
} }
SECTION("object") { SECTION("object") {
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
JsonObject obj2 = doc2.to<JsonObject>(); JsonObject obj2 = doc2.to<JsonObject>();
obj["hello"] = obj2; obj["hello"] = obj2;
@ -73,7 +73,7 @@ TEST_CASE("JsonObject::operator[]") {
} }
SECTION("array subscript") { SECTION("array subscript") {
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
JsonArray arr = doc2.to<JsonArray>(); JsonArray arr = doc2.to<JsonArray>();
arr.add(42); arr.add(42);
@ -83,7 +83,7 @@ TEST_CASE("JsonObject::operator[]") {
} }
SECTION("object subscript") { SECTION("object subscript") {
DynamicJsonDocument doc2(4096); JsonDocument doc2(4096);
JsonObject obj2 = doc2.to<JsonObject>(); JsonObject obj2 = doc2.to<JsonObject>();
obj2["x"] = 42; obj2["x"] = 42;

View File

@ -30,7 +30,7 @@ class CustomWriter {
}; };
TEST_CASE("CustomWriter") { TEST_CASE("CustomWriter") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonArray array = doc.to<JsonArray>(); JsonArray array = doc.to<JsonArray>();
array.add(4); array.add(4);
array.add(2); array.add(2);

View File

@ -15,7 +15,7 @@ static void check(JsonArray array, std::string expected) {
} }
TEST_CASE("serializeJson(JsonArray)") { TEST_CASE("serializeJson(JsonArray)") {
DynamicJsonDocument doc(JSON_ARRAY_SIZE(2)); JsonDocument doc(JSON_ARRAY_SIZE(2));
JsonArray array = doc.to<JsonArray>(); JsonArray array = doc.to<JsonArray>();
SECTION("Empty") { SECTION("Empty") {

View File

@ -15,7 +15,7 @@ static void checkArray(JsonArray array, std::string expected) {
} }
TEST_CASE("serializeJsonPretty(JsonArray)") { TEST_CASE("serializeJsonPretty(JsonArray)") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonArray array = doc.to<JsonArray>(); JsonArray array = doc.to<JsonArray>();
SECTION("Empty") { SECTION("Empty") {

View File

@ -20,7 +20,7 @@ static void checkObject(const JsonObject obj, const std::string& expected) {
} }
TEST_CASE("serializeJson(JsonObject)") { TEST_CASE("serializeJson(JsonObject)") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonObject obj = doc.to<JsonObject>(); JsonObject obj = doc.to<JsonObject>();
SECTION("EmptyObject") { SECTION("EmptyObject") {
@ -96,8 +96,8 @@ TEST_CASE("serializeJson(JsonObject)") {
} }
SECTION("ThreeNestedArrays") { SECTION("ThreeNestedArrays") {
DynamicJsonDocument b(4096); JsonDocument b(4096);
DynamicJsonDocument c(4096); JsonDocument c(4096);
obj.createNestedArray("a"); obj.createNestedArray("a");
obj["b"] = b.to<JsonArray>(); obj["b"] = b.to<JsonArray>();
@ -107,8 +107,8 @@ TEST_CASE("serializeJson(JsonObject)") {
} }
SECTION("ThreeNestedObjects") { SECTION("ThreeNestedObjects") {
DynamicJsonDocument b(4096); JsonDocument b(4096);
DynamicJsonDocument c(4096); JsonDocument c(4096);
obj.createNestedObject("a"); obj.createNestedObject("a");
obj["b"] = b.to<JsonObject>(); obj["b"] = b.to<JsonObject>();

View File

@ -19,7 +19,7 @@ static void checkObjectPretty(const JsonObject obj,
} }
TEST_CASE("serializeJsonPretty(JsonObject)") { TEST_CASE("serializeJsonPretty(JsonObject)") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
JsonObject obj = doc.to<JsonObject>(); JsonObject obj = doc.to<JsonObject>();
SECTION("EmptyObject") { SECTION("EmptyObject") {

View File

@ -8,7 +8,7 @@
template <typename T> template <typename T>
void check(T value, const std::string& expected) { void check(T value, const std::string& expected) {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
doc.to<JsonVariant>().set(value); doc.to<JsonVariant>().set(value);
char buffer[256] = ""; char buffer[256] = "";
size_t returnValue = serializeJson(doc, buffer, sizeof(buffer)); size_t returnValue = serializeJson(doc, buffer, sizeof(buffer));

View File

@ -3,7 +3,7 @@
#include <limits> #include <limits>
TEST_CASE("serializeJson(MemberProxy)") { TEST_CASE("serializeJson(MemberProxy)") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
deserializeJson(doc, "{\"hello\":42}"); deserializeJson(doc, "{\"hello\":42}");
JsonObject obj = doc.as<JsonObject>(); JsonObject obj = doc.as<JsonObject>();
std::string result; std::string result;
@ -14,7 +14,7 @@ TEST_CASE("serializeJson(MemberProxy)") {
} }
TEST_CASE("serializeJson(ElementProxy)") { TEST_CASE("serializeJson(ElementProxy)") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
deserializeJson(doc, "[42]"); deserializeJson(doc, "[42]");
JsonArray arr = doc.as<JsonArray>(); JsonArray arr = doc.as<JsonArray>();
std::string result; std::string result;
@ -25,7 +25,7 @@ TEST_CASE("serializeJson(ElementProxy)") {
} }
TEST_CASE("serializeJson(JsonVariantSubscript)") { TEST_CASE("serializeJson(JsonVariantSubscript)") {
DynamicJsonDocument doc(4096); JsonDocument doc(4096);
deserializeJson(doc, "[42]"); deserializeJson(doc, "[42]");
JsonVariant var = doc.as<JsonVariant>(); JsonVariant var = doc.as<JsonVariant>();
std::string result; std::string result;

Some files were not shown because too many files have changed in this diff Show More