| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- // ArduinoJson - arduinojson.org
- // Copyright Benoit Blanchon 2014-2018
- // MIT License
- #include <ArduinoJson.h>
- #include <catch.hpp>
- TEST_CASE("deserializeJson(StaticJsonArray&)") {
- SECTION("BufferOfTheRightSizeForEmptyArray") {
- StaticJsonArray<JSON_ARRAY_SIZE(0)> arr;
- char input[] = "[]";
- JsonError err = deserializeJson(arr, input);
- REQUIRE(err == JsonError::Ok);
- }
- SECTION("TooSmallBufferForArrayWithOneValue") {
- StaticJsonArray<JSON_ARRAY_SIZE(1) - 1> arr;
- char input[] = "[1]";
- JsonError err = deserializeJson(arr, input);
- REQUIRE(err != JsonError::Ok);
- }
- SECTION("BufferOfTheRightSizeForArrayWithOneValue") {
- StaticJsonArray<JSON_ARRAY_SIZE(1)> arr;
- char input[] = "[1]";
- JsonError err = deserializeJson(arr, input);
- REQUIRE(err == JsonError::Ok);
- }
- SECTION("TooSmallBufferForArrayWithNestedObject") {
- StaticJsonArray<JSON_ARRAY_SIZE(1) + JSON_OBJECT_SIZE(0) - 1> arr;
- char input[] = "[{}]";
- JsonError err = deserializeJson(arr, input);
- REQUIRE(err != JsonError::Ok);
- }
- SECTION("BufferOfTheRightSizeForArrayWithNestedObject") {
- StaticJsonArray<JSON_ARRAY_SIZE(1) + JSON_OBJECT_SIZE(0)> arr;
- char input[] = "[{}]";
- JsonError err = deserializeJson(arr, input);
- REQUIRE(err == JsonError::Ok);
- }
- SECTION("CharPtrNull") {
- StaticJsonArray<100> arr;
- JsonError err = deserializeJson(arr, static_cast<char*>(0));
- REQUIRE(err != JsonError::Ok);
- }
- SECTION("ConstCharPtrNull") {
- StaticJsonArray<100> arr;
- JsonError err = deserializeJson(arr, static_cast<const char*>(0));
- REQUIRE(err != JsonError::Ok);
- }
- SECTION("CopyStringNotSpaces") {
- StaticJsonArray<100> arr;
- deserializeJson(arr, " [ \"1234567\" ] ");
- REQUIRE(JSON_ARRAY_SIZE(1) + sizeof("1234567") == arr.memoryUsage());
- // note: we use a string of 8 bytes to be sure that the StaticJsonBuffer
- // will not insert bytes to enforce alignement
- }
- SECTION("Should clear the JsonArray") {
- StaticJsonArray<JSON_ARRAY_SIZE(4)> arr;
- char input[] = "[1,2,3,4]";
- deserializeJson(arr, input);
- deserializeJson(arr, "[]");
- REQUIRE(arr.size() == 0);
- REQUIRE(arr.memoryUsage() == JSON_ARRAY_SIZE(0));
- }
- }
|