JsonVariant: add tests for size()

This commit is contained in:
Benoit Blanchon
2022-04-27 15:00:27 +02:00
parent 1d103a1528
commit 5577d18377
2 changed files with 46 additions and 1 deletions

View File

@ -8,8 +8,8 @@ add_executable(JsonVariantTests
clear.cpp
compare.cpp
containsKey.cpp
copy.cpp
converters.cpp
copy.cpp
createNested.cpp
is.cpp
isnull.cpp
@ -20,6 +20,7 @@ add_executable(JsonVariantTests
overflow.cpp
remove.cpp
set.cpp
size.cpp
subscript.cpp
types.cpp
unbound.cpp

View File

@ -0,0 +1,44 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>
#include <catch.hpp>
TEST_CASE("JsonVariant::size()") {
DynamicJsonDocument doc(4096);
JsonVariant variant = doc.to<JsonVariant>();
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);
}
}