createNested.cpp 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. // ArduinoJson - https://arduinojson.org
  2. // Copyright © 2014-2022, Benoit BLANCHON
  3. // MIT License
  4. #include <ArduinoJson.h>
  5. #include <stdint.h>
  6. #include <catch.hpp>
  7. TEST_CASE("JsonVariant::createNestedObject()") {
  8. DynamicJsonDocument doc(4096);
  9. JsonVariant variant = doc.to<JsonVariant>();
  10. SECTION("promotes to array") {
  11. JsonObject obj = variant.createNestedObject();
  12. obj["value"] = 42;
  13. REQUIRE(variant.is<JsonArray>() == true);
  14. REQUIRE(variant[0]["value"] == 42);
  15. REQUIRE(obj.isNull() == false);
  16. }
  17. }
  18. TEST_CASE("JsonVariant::createNestedArray()") {
  19. DynamicJsonDocument doc(4096);
  20. JsonVariant variant = doc.to<JsonVariant>();
  21. SECTION("promotes to array") {
  22. JsonArray arr = variant.createNestedArray();
  23. REQUIRE(variant.is<JsonArray>() == true);
  24. REQUIRE(arr.isNull() == false);
  25. }
  26. }
  27. TEST_CASE("JsonVariant::createNestedObject(key)") {
  28. DynamicJsonDocument doc(4096);
  29. JsonVariant variant = doc.to<JsonVariant>();
  30. SECTION("promotes to object") {
  31. JsonObject obj = variant.createNestedObject("weather");
  32. obj["temp"] = 42;
  33. REQUIRE(variant.is<JsonObject>() == true);
  34. REQUIRE(variant["weather"]["temp"] == 42);
  35. }
  36. }
  37. TEST_CASE("JsonVariant::createNestedArray(key)") {
  38. DynamicJsonDocument doc(4096);
  39. JsonVariant variant = doc.to<JsonVariant>();
  40. SECTION("promotes to object") {
  41. JsonArray arr = variant.createNestedArray("items");
  42. REQUIRE(variant.is<JsonObject>() == true);
  43. REQUIRE(arr.isNull() == false);
  44. }
  45. }