deprecated.cpp 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. // ArduinoJson - arduinojson.org
  2. // Copyright Benoit Blanchon 2014-2018
  3. // MIT License
  4. #define ARDUINOJSON_ENABLE_DEPRECATED 1
  5. #include <ArduinoJson.h>
  6. #include <catch.hpp>
  7. #if defined(__clang__)
  8. #pragma clang diagnostic ignored "-Wdeprecated-declarations"
  9. #elif defined(__GNUC__)
  10. #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
  11. #elif defined(_MSC_VER)
  12. #pragma warning(disable : 4996)
  13. #endif
  14. TEST_CASE("Deprecated functions") {
  15. SECTION("JsonVariant::asArray()") {
  16. DynamicJsonArray array;
  17. JsonVariant variant = array;
  18. REQUIRE(variant.asArray().success());
  19. }
  20. SECTION("JsonVariant::asObject()") {
  21. DynamicJsonObject obj;
  22. JsonVariant variant = obj;
  23. REQUIRE(variant.asObject().success());
  24. }
  25. SECTION("JsonVariant::asString()") {
  26. JsonVariant variant = "hello";
  27. REQUIRE(std::string("hello") == variant.asString());
  28. }
  29. SECTION("JsonArray::removeAt()") {
  30. DynamicJsonArray arr;
  31. arr.removeAt(0);
  32. }
  33. SECTION("JsonVariant::JsonVariant(float, uint8_t)") {
  34. JsonVariant variant(3.14f, 2);
  35. REQUIRE(variant == 3.14f);
  36. }
  37. SECTION("JsonVariant::JsonVariant(double, uint8_t)") {
  38. JsonVariant variant(3.14, 2);
  39. REQUIRE(variant == 3.14);
  40. }
  41. SECTION("float_with_n_digits()") {
  42. JsonVariant variant = float_with_n_digits(3.14f, 4);
  43. REQUIRE(variant == 3.14f);
  44. }
  45. SECTION("double_with_n_digits()") {
  46. JsonVariant variant = double_with_n_digits(3.14f, 4);
  47. REQUIRE(variant == 3.14f);
  48. }
  49. SECTION("JsonArraySubscript::set(double, uint8_t)") {
  50. DynamicJsonArray arr;
  51. arr.add(666);
  52. arr[0].set(123.45, 2);
  53. REQUIRE(123.45 == arr[0].as<double>());
  54. REQUIRE(true == arr[0].is<double>());
  55. REQUIRE(false == arr[0].is<int>());
  56. }
  57. SECTION("JsonArray::add(double, uint8_t)") {
  58. DynamicJsonArray arr;
  59. arr.add(3.14159265358979323846, 4);
  60. }
  61. SECTION("JsonArray::add(float, uint8_t)") {
  62. DynamicJsonArray arr;
  63. arr.add(3.14159265358979323846f, 4);
  64. }
  65. SECTION("JsonObject::set(unsigned char[], double, uint8_t)") {
  66. unsigned char key[] = "hello";
  67. DynamicJsonObject obj;
  68. obj.set(key, 3.14, 2);
  69. REQUIRE(3.14 == obj["hello"]);
  70. }
  71. SECTION("JsonObject::set(const char*, double, uint8_t)") {
  72. DynamicJsonObject obj;
  73. obj.set("hello", 123.45, 2);
  74. REQUIRE(123.45 == obj["hello"].as<double>());
  75. REQUIRE(obj["hello"].is<double>());
  76. REQUIRE_FALSE(obj["hello"].is<long>());
  77. }
  78. SECTION("JsonObjectSubscript::set(double, uint8_t)") {
  79. DynamicJsonObject obj;
  80. obj["hello"].set(123.45, 2);
  81. REQUIRE(true == obj["hello"].is<double>());
  82. REQUIRE(false == obj["hello"].is<long>());
  83. REQUIRE(123.45 == obj["hello"].as<double>());
  84. }
  85. }
  86. TEST_CASE("DynamicJsonBuffer::strdup()") {
  87. DynamicJsonBuffer buffer;
  88. SECTION("char*") {
  89. char original[] = "hello";
  90. const char* copy = buffer.strdup(original);
  91. strcpy(original, "world");
  92. REQUIRE(std::string("hello") == copy);
  93. }
  94. SECTION("unsigned char*") {
  95. unsigned char value[] = "world";
  96. DynamicJsonBuffer jsonBuffer;
  97. const char* dup = jsonBuffer.strdup(value);
  98. REQUIRE(static_cast<const void*>(value) != static_cast<const void*>(dup));
  99. REQUIRE(std::string("world") == dup);
  100. }
  101. SECTION("std::string") {
  102. std::string original("hello");
  103. const char* copy = buffer.strdup(original);
  104. original[0] = 'w';
  105. REQUIRE(std::string("hello") == copy);
  106. }
  107. SECTION("NULL") {
  108. const char* original = NULL;
  109. const char* copy = buffer.strdup(original);
  110. REQUIRE(0 == copy);
  111. }
  112. }