JsonObjectPretty.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. // ArduinoJson - arduinojson.org
  2. // Copyright Benoit Blanchon 2014-2018
  3. // MIT License
  4. #include <ArduinoJson.h>
  5. #include <catch.hpp>
  6. #include <string>
  7. void check(const JsonObject &obj, const std::string expected) {
  8. char json[256];
  9. size_t actualLen = serializeJsonPretty(obj, json);
  10. size_t measuredLen = measureJsonPretty(obj);
  11. REQUIRE(json == expected);
  12. REQUIRE(expected.size() == actualLen);
  13. REQUIRE(expected.size() == measuredLen);
  14. }
  15. TEST_CASE("serializeJsonPretty(JsonObject)") {
  16. DynamicJsonObject obj;
  17. SECTION("EmptyObject") {
  18. check(obj, "{}");
  19. }
  20. SECTION("OneMember") {
  21. obj["key"] = "value";
  22. check(obj,
  23. "{\r\n"
  24. " \"key\": \"value\"\r\n"
  25. "}");
  26. }
  27. SECTION("TwoMembers") {
  28. obj["key1"] = "value1";
  29. obj["key2"] = "value2";
  30. check(obj,
  31. "{\r\n"
  32. " \"key1\": \"value1\",\r\n"
  33. " \"key2\": \"value2\"\r\n"
  34. "}");
  35. }
  36. SECTION("EmptyNestedContainers") {
  37. obj.createNestedObject("key1");
  38. obj.createNestedArray("key2");
  39. check(obj,
  40. "{\r\n"
  41. " \"key1\": {},\r\n"
  42. " \"key2\": []\r\n"
  43. "}");
  44. }
  45. SECTION("NestedContainers") {
  46. JsonObject &nested1 = obj.createNestedObject("key1");
  47. nested1["a"] = 1;
  48. JsonArray &nested2 = obj.createNestedArray("key2");
  49. nested2.add(2);
  50. check(obj,
  51. "{\r\n"
  52. " \"key1\": {\r\n"
  53. " \"a\": 1\r\n"
  54. " },\r\n"
  55. " \"key2\": [\r\n"
  56. " 2\r\n"
  57. " ]\r\n"
  58. "}");
  59. }
  60. }