From cae6b76096887d7c8b0f5886502011d79af9995a Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Thu, 10 Mar 2022 18:36:36 +0100 Subject: [PATCH] Move size test --- extras/tests/JsonVariant/CMakeLists.txt | 1 + extras/tests/JsonVariant/link.cpp | 5 --- extras/tests/JsonVariant/size.cpp | 44 +++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 5 deletions(-) create mode 100644 extras/tests/JsonVariant/size.cpp diff --git a/extras/tests/JsonVariant/CMakeLists.txt b/extras/tests/JsonVariant/CMakeLists.txt index 5294295c..35cf3818 100644 --- a/extras/tests/JsonVariant/CMakeLists.txt +++ b/extras/tests/JsonVariant/CMakeLists.txt @@ -21,6 +21,7 @@ add_executable(JsonVariantTests overflow.cpp remove.cpp set.cpp + size.cpp subscript.cpp types.cpp unbound.cpp diff --git a/extras/tests/JsonVariant/link.cpp b/extras/tests/JsonVariant/link.cpp index c06ff41f..d835fd4f 100644 --- a/extras/tests/JsonVariant/link.cpp +++ b/extras/tests/JsonVariant/link.cpp @@ -58,11 +58,6 @@ TEST_CASE("Linked document") { doc2["hello"] = "world"; variant.link(doc2); - // TODO: move in size.cpp - SECTION("size()") { - CHECK(variant.size() == 1); - } - SECTION("is()") { CHECK(variant.is() == false); CHECK(variant.is() == true); diff --git a/extras/tests/JsonVariant/size.cpp b/extras/tests/JsonVariant/size.cpp new file mode 100644 index 00000000..a08aaead --- /dev/null +++ b/extras/tests/JsonVariant/size.cpp @@ -0,0 +1,44 @@ +// ArduinoJson - https://arduinojson.org +// Copyright © 2014-2022, Benoit BLANCHON +// MIT License + +#include +#include + +TEST_CASE("JsonVariant::size()") { + DynamicJsonDocument doc(4096); + JsonVariant variant = doc.to(); + + SECTION("unbound reference") { + JsonVariant unbound; + + CHECK(unbound.size() == 0); + } + + SECTION("int") { + variant.set(42); + + CHECK(variant.size() == 0); + } + + SECTION("string") { + variant.set("hello"); + + CHECK(variant.size() == 0); + } + + SECTION("object") { + variant["a"] = 1; + variant["b"] = 2; + + CHECK(variant.size() == 2); + } + + SECTION("linked object") { + StaticJsonDocument<1024> doc2; + doc2["hello"] = "world"; + variant.link(doc2); + + CHECK(variant.size() == 1); + } +}