// ArduinoJson - arduinojson.org // Copyright Benoit Blanchon 2014-2018 // MIT License #include #include TEST_CASE("deserializeJson(StaticJsonObject&)") { SECTION("BufferOfTheRightSizeForEmptyObject") { StaticJsonObject obj; char input[] = "{}"; JsonError err = deserializeJson(obj, input); REQUIRE(err == JsonError::Ok); } SECTION("TooSmallBufferForObjectWithOneValue") { StaticJsonObject obj; char input[] = "{\"a\":1}"; JsonError err = deserializeJson(obj, input); REQUIRE(err != JsonError::Ok); } SECTION("BufferOfTheRightSizeForObjectWithOneValue") { StaticJsonObject obj; char input[] = "{\"a\":1}"; JsonError err = deserializeJson(obj, input); REQUIRE(err == JsonError::Ok); } SECTION("TooSmallBufferForObjectWithNestedObject") { StaticJsonObject obj; char input[] = "{\"a\":[]}"; JsonError err = deserializeJson(obj, input); REQUIRE(err != JsonError::Ok); } SECTION("BufferOfTheRightSizeForObjectWithNestedObject") { StaticJsonObject obj; char input[] = "{\"a\":[]}"; JsonError err = deserializeJson(obj, input); REQUIRE(err == JsonError::Ok); } SECTION("CharPtrNull") { StaticJsonObject<100> obj; JsonError err = deserializeJson(obj, static_cast(0)); REQUIRE(err != JsonError::Ok); } SECTION("ConstCharPtrNull") { StaticJsonObject<100> obj; JsonError err = deserializeJson(obj, static_cast(0)); REQUIRE(err != JsonError::Ok); } SECTION("Should clear the JsonObject") { StaticJsonObject obj; char input[] = "{\"hello\":\"world\"}"; deserializeJson(obj, input); deserializeJson(obj, "{}"); REQUIRE(obj.size() == 0); REQUIRE(obj.memoryUsage() == JSON_OBJECT_SIZE(0)); } }