// ArduinoJson - arduinojson.org // Copyright Benoit Blanchon 2014-2018 // MIT License #include #include using namespace Catch::Matchers; TEST_CASE("deserializeJson(JsonVariant&)") { DynamicJsonVariant variant; SECTION("EmptyObject") { bool success = deserializeJson(variant, "{}"); REQUIRE(success == true); REQUIRE(variant.is()); } SECTION("EmptyArray") { bool success = deserializeJson(variant, "[]"); REQUIRE(success == true); REQUIRE(variant.is()); } SECTION("Integer") { bool success = deserializeJson(variant, "-42"); REQUIRE(success == true); REQUIRE(variant.is()); REQUIRE_FALSE(variant.is()); REQUIRE(variant == -42); } SECTION("Double") { bool success = deserializeJson(variant, "-1.23e+4"); REQUIRE(success == true); REQUIRE_FALSE(variant.is()); REQUIRE(variant.is()); REQUIRE(variant.as() == Approx(-1.23e+4)); } SECTION("Double quoted string") { bool success = deserializeJson(variant, "\"hello world\""); REQUIRE(success == true); REQUIRE(variant.is()); REQUIRE_THAT(variant.as(), Equals("hello world")); } SECTION("Single quoted string") { bool success = deserializeJson(variant, "\'hello world\'"); REQUIRE(success == true); REQUIRE(variant.is()); REQUIRE_THAT(variant.as(), Equals("hello world")); } SECTION("True") { bool success = deserializeJson(variant, "true"); REQUIRE(success == true); REQUIRE(variant.is()); REQUIRE(variant == true); } SECTION("False") { bool success = deserializeJson(variant, "false"); REQUIRE(success == true); REQUIRE(variant.is()); REQUIRE(variant == false); } SECTION("OpenBrace") { bool success = deserializeJson(variant, "{"); REQUIRE(success == false); } SECTION("Incomplete string") { bool success = deserializeJson(variant, "\"hello"); REQUIRE(success == true); REQUIRE(variant.is()); REQUIRE_THAT(variant.as(), Equals("hello")); } }