// Copyright Benoit Blanchon 2014-2017 // MIT License // // Arduino JSON library // https://bblanchon.github.io/ArduinoJson/ // If you like this project, please add a star! #include #include using namespace Catch::Matchers; TEST_CASE("JsonBuffer::parse()") { DynamicJsonBuffer jb; SECTION("EmptyObject") { JsonVariant variant = jb.parse("{}"); REQUIRE(variant.success()); REQUIRE(variant.is()); } SECTION("EmptyArray") { JsonVariant variant = jb.parse("[]"); REQUIRE(variant.success()); REQUIRE(variant.is()); } SECTION("Integer") { JsonVariant variant = jb.parse("-42"); REQUIRE(variant.success()); REQUIRE(variant.is()); REQUIRE_FALSE(variant.is()); REQUIRE(variant == -42); } SECTION("Double") { JsonVariant variant = jb.parse("-1.23e+4"); REQUIRE(variant.success()); REQUIRE_FALSE(variant.is()); REQUIRE(variant.is()); REQUIRE(variant.as() == Approx(-1.23e+4)); } SECTION("Double quoted string") { JsonVariant variant = jb.parse("\"hello world\""); REQUIRE(variant.success()); REQUIRE(variant.is()); REQUIRE_THAT(variant.as(), Equals("hello world")); } SECTION("Single quoted string") { JsonVariant variant = jb.parse("\'hello world\'"); REQUIRE(variant.success()); REQUIRE(variant.is()); REQUIRE_THAT(variant.as(), Equals("hello world")); } SECTION("True") { JsonVariant variant = jb.parse("true"); REQUIRE(variant.success()); REQUIRE(variant.is()); REQUIRE(variant == true); } SECTION("False") { JsonVariant variant = jb.parse("false"); REQUIRE(variant.success()); REQUIRE(variant.is()); REQUIRE(variant == false); } SECTION("OpenBrace") { JsonVariant variant = jb.parse("{"); REQUIRE_FALSE(variant.success()); } SECTION("Incomplete string") { JsonVariant variant = jb.parse("\"hello"); REQUIRE(variant.success()); REQUIRE(variant.is()); REQUIRE_THAT(variant.as(), Equals("hello")); } }