deprecated.cpp 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. // ArduinoJson - https://arduinojson.org
  2. // Copyright © 2014-2022, Benoit BLANCHON
  3. // MIT License
  4. #define ARDUINOJSON_DEPRECATED(msg) // nothing
  5. #include <ArduinoJson.h>
  6. #include <catch.hpp>
  7. TEST_CASE("Deprecated features") {
  8. StaticJsonDocument<256> doc;
  9. const char* s = "hello";
  10. doc["s"] = s;
  11. doc["c"] = 42;
  12. doc["a"].add(s);
  13. doc["a"].add(42);
  14. SECTION("JsonVariant::add(char)") {
  15. JsonVariant v = doc.to<JsonVariant>();
  16. v.add('*');
  17. REQUIRE(v[0] == 42);
  18. }
  19. SECTION("JsonVariant::as<char*>()") {
  20. JsonVariant v = doc["s"];
  21. REQUIRE(v.as<char*>() == s);
  22. }
  23. SECTION("JsonVariant::as<char>()") {
  24. JsonVariant v = doc["c"];
  25. REQUIRE(v.as<char>() == '*');
  26. }
  27. SECTION("JsonVariant::is<char*>()") {
  28. JsonVariant v = doc["s"];
  29. REQUIRE(v.is<char*>() == true);
  30. }
  31. SECTION("JsonVariant::is<char>()") {
  32. JsonVariant v = doc["c"];
  33. REQUIRE(v.is<char>() == true);
  34. }
  35. SECTION("JsonVariant::set(char)") {
  36. JsonVariant v = doc.to<JsonVariant>();
  37. v.set('*');
  38. REQUIRE(v.as<unsigned char>() == 42);
  39. }
  40. SECTION("JsonVariantConst::as<char*>()") {
  41. JsonVariantConst v = doc["s"];
  42. REQUIRE(v.as<char*>() == s);
  43. }
  44. SECTION("JsonVariantConst::as<char>()") {
  45. JsonVariantConst v = doc["c"];
  46. REQUIRE(v.as<char>() == '*');
  47. }
  48. SECTION("JsonVariantConst::is<char*>()") {
  49. JsonVariantConst v = doc["s"];
  50. REQUIRE(v.is<char*>() == true);
  51. }
  52. SECTION("JsonVariantConst::is<char>()") {
  53. JsonVariantConst v = doc["c"];
  54. REQUIRE(v.is<char>() == true);
  55. }
  56. SECTION("MemberProxy::as<char*>()") {
  57. REQUIRE(doc["s"].as<char*>() == s);
  58. }
  59. SECTION("MemberProxy::as<char>()") {
  60. REQUIRE(doc["c"].as<char>() == '*');
  61. }
  62. SECTION("MemberProxy::as<char>()") {
  63. doc["x"].set('*');
  64. REQUIRE(doc["x"] == 42);
  65. }
  66. SECTION("MemberProxy::is<char*>()") {
  67. REQUIRE(doc["s"].is<char*>() == true);
  68. REQUIRE(doc["c"].is<char*>() == false);
  69. }
  70. SECTION("MemberProxy::is<char>()") {
  71. REQUIRE(doc["c"].is<char>() == true);
  72. REQUIRE(doc["s"].is<char>() == false);
  73. }
  74. SECTION("ElementProxy::as<char*>()") {
  75. REQUIRE(doc["a"][0].as<char*>() == s);
  76. }
  77. SECTION("ElementProxy::as<char>()") {
  78. REQUIRE(doc["a"][1].as<char>() == '*');
  79. }
  80. SECTION("ElementProxy::as<char>()") {
  81. doc["a"][0].set('*');
  82. REQUIRE(doc["a"][0] == 42);
  83. }
  84. SECTION("ElementProxy::is<char*>()") {
  85. REQUIRE(doc["a"][0].is<char*>() == true);
  86. REQUIRE(doc["a"][1].is<char*>() == false);
  87. }
  88. SECTION("ElementProxy::is<char>()") {
  89. REQUIRE(doc["a"][1].is<char>() == true);
  90. REQUIRE(doc["a"][0].is<char>() == false);
  91. }
  92. }