Clear the JsonObject or JsonArray in deserializeJson()

This commit is contained in:
Benoit Blanchon
2018-03-18 14:50:52 +01:00
parent cf149940ed
commit 0d1623edef
15 changed files with 126 additions and 9 deletions

View File

@ -0,0 +1,35 @@
// ArduinoJson - arduinojson.org
// Copyright Benoit Blanchon 2014-2018
// MIT License
#include <ArduinoJson.h>
#include <catch.hpp>
using namespace Catch::Matchers;
TEST_CASE("deserializeJson(StaticJsonVariant&)") {
SECTION("Array") {
StaticJsonVariant<JSON_ARRAY_SIZE(2)> variant;
char input[] = "[1,2]";
JsonError err = deserializeJson(variant, input);
REQUIRE(err == JsonError::Ok);
REQUIRE(variant.is<JsonArray>());
REQUIRE(variant[0] == 1);
REQUIRE(variant[1] == 2);
REQUIRE(variant.memoryUsage() == JSON_ARRAY_SIZE(2));
}
SECTION("Should clear the JsonVariant") {
StaticJsonVariant<JSON_ARRAY_SIZE(2)> variant;
char input[] = "[1,2]";
deserializeJson(variant, input);
JsonError err = deserializeJson(variant, "{}");
REQUIRE(err == JsonError::Ok);
REQUIRE(variant.is<JsonObject>());
REQUIRE(variant.memoryUsage() == JSON_OBJECT_SIZE(0));
}
}