misc.cpp 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // ArduinoJson - https://arduinojson.org
  2. // Copyright © 2014-2023, 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("JsonVariant from JsonArray") {
  11. SECTION("JsonArray is null") {
  12. JsonArray arr;
  13. JsonVariant v = arr;
  14. REQUIRE(v.isNull() == true);
  15. }
  16. SECTION("JsonArray is not null") {
  17. DynamicJsonDocument doc(4096);
  18. JsonArray arr = doc.to<JsonArray>();
  19. arr.add(12);
  20. arr.add(34);
  21. JsonVariant v = arr;
  22. REQUIRE(v.is<JsonArray>() == true);
  23. REQUIRE(v.size() == 2);
  24. REQUIRE(v[0] == 12);
  25. REQUIRE(v[1] == 34);
  26. }
  27. }
  28. TEST_CASE("JsonVariant from JsonObject") {
  29. SECTION("JsonObject is null") {
  30. JsonObject obj;
  31. JsonVariant v = obj;
  32. REQUIRE(v.isNull() == true);
  33. }
  34. SECTION("JsonObject is not null") {
  35. DynamicJsonDocument doc(4096);
  36. JsonObject obj = doc.to<JsonObject>();
  37. obj["a"] = 12;
  38. obj["b"] = 34;
  39. JsonVariant v = obj;
  40. REQUIRE(v.is<JsonObject>() == true);
  41. REQUIRE(v.size() == 2);
  42. REQUIRE(v["a"] == 12);
  43. REQUIRE(v["b"] == 34);
  44. }
  45. }