JsonArray.cpp 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. // ArduinoJson - https://arduinojson.org
  2. // Copyright © 2014-2024, Benoit BLANCHON
  3. // MIT License
  4. #include <ArduinoJson.h>
  5. #include <catch.hpp>
  6. static void check(JsonArray array, std::string expected) {
  7. std::string actual;
  8. size_t actualLen = serializeJson(array, actual);
  9. REQUIRE(expected == actual);
  10. REQUIRE(actualLen == expected.size());
  11. size_t measuredLen = measureJson(array);
  12. REQUIRE(measuredLen == expected.size());
  13. }
  14. TEST_CASE("serializeJson(JsonArray)") {
  15. JsonDocument doc;
  16. JsonArray array = doc.to<JsonArray>();
  17. SECTION("Empty") {
  18. check(array, "[]");
  19. }
  20. SECTION("Null") {
  21. array.add(static_cast<char*>(0));
  22. check(array, "[null]");
  23. }
  24. SECTION("OneString") {
  25. array.add("hello");
  26. check(array, "[\"hello\"]");
  27. }
  28. SECTION("TwoStrings") {
  29. array.add("hello");
  30. array.add("world");
  31. check(array, "[\"hello\",\"world\"]");
  32. }
  33. SECTION("One double") {
  34. array.add(3.1415927);
  35. check(array, "[3.1415927]");
  36. }
  37. SECTION("OneInteger") {
  38. array.add(1);
  39. check(array, "[1]");
  40. }
  41. SECTION("TwoIntegers") {
  42. array.add(1);
  43. array.add(2);
  44. check(array, "[1,2]");
  45. }
  46. SECTION("serialized(const char*)") {
  47. array.add(serialized("{\"key\":\"value\"}"));
  48. check(array, "[{\"key\":\"value\"}]");
  49. }
  50. SECTION("serialized(char*)") {
  51. char tmp[] = "{\"key\":\"value\"}";
  52. array.add(serialized(tmp));
  53. check(array, "[{\"key\":\"value\"}]");
  54. }
  55. SECTION("OneTrue") {
  56. array.add(true);
  57. check(array, "[true]");
  58. }
  59. SECTION("OneFalse") {
  60. array.add(false);
  61. check(array, "[false]");
  62. }
  63. SECTION("TwoBooleans") {
  64. array.add(false);
  65. array.add(true);
  66. check(array, "[false,true]");
  67. }
  68. SECTION("OneEmptyNestedArray") {
  69. array.add<JsonArray>();
  70. check(array, "[[]]");
  71. }
  72. SECTION("OneEmptyNestedHash") {
  73. array.add<JsonObject>();
  74. check(array, "[{}]");
  75. }
  76. }