misc.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. // ArduinoJson - https://arduinojson.org
  2. // Copyright © 2014-2025, Benoit BLANCHON
  3. // MIT License
  4. #include <ArduinoJson.h>
  5. #include <catch.hpp>
  6. TEST_CASE("VariantData") {
  7. REQUIRE(std::is_standard_layout<ArduinoJson::detail::VariantData>::value ==
  8. true);
  9. }
  10. TEST_CASE("StringNode") {
  11. REQUIRE(std::is_standard_layout<ArduinoJson::detail::StringNode>::value ==
  12. true);
  13. }
  14. TEST_CASE("JsonVariant from JsonArray") {
  15. SECTION("JsonArray is null") {
  16. JsonArray arr;
  17. JsonVariant v = arr;
  18. REQUIRE(v.isNull() == true);
  19. }
  20. SECTION("JsonArray is not null") {
  21. JsonDocument doc;
  22. JsonArray arr = doc.to<JsonArray>();
  23. arr.add(12);
  24. arr.add(34);
  25. JsonVariant v = arr;
  26. REQUIRE(v.is<JsonArray>() == true);
  27. REQUIRE(v.size() == 2);
  28. REQUIRE(v[0] == 12);
  29. REQUIRE(v[1] == 34);
  30. }
  31. }
  32. TEST_CASE("JsonVariant from JsonObject") {
  33. SECTION("JsonObject is null") {
  34. JsonObject obj;
  35. JsonVariant v = obj;
  36. REQUIRE(v.isNull() == true);
  37. }
  38. SECTION("JsonObject is not null") {
  39. JsonDocument doc;
  40. JsonObject obj = doc.to<JsonObject>();
  41. obj["a"] = 12;
  42. obj["b"] = 34;
  43. JsonVariant v = obj;
  44. REQUIRE(v.is<JsonObject>() == true);
  45. REQUIRE(v.size() == 2);
  46. REQUIRE(v["a"] == 12);
  47. REQUIRE(v["b"] == 34);
  48. }
  49. }