std_string.cpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. // ArduinoJson - https://arduinojson.org
  2. // Copyright © 2014-2022, Benoit BLANCHON
  3. // MIT License
  4. #include <ArduinoJson.h>
  5. #include <catch.hpp>
  6. TEST_CASE("serialize JsonArray to std::string") {
  7. DynamicJsonDocument doc(4096);
  8. JsonArray array = doc.to<JsonArray>();
  9. array.add(4);
  10. array.add(2);
  11. SECTION("serializeJson()") {
  12. std::string json;
  13. serializeJson(array, json);
  14. REQUIRE("[4,2]" == json);
  15. }
  16. SECTION("serializeJsonPretty") {
  17. std::string json;
  18. serializeJsonPretty(array, json);
  19. REQUIRE("[\r\n 4,\r\n 2\r\n]" == json);
  20. }
  21. }
  22. TEST_CASE("serialize JsonObject to std::string") {
  23. DynamicJsonDocument doc(4096);
  24. JsonObject obj = doc.to<JsonObject>();
  25. obj["key"] = "value";
  26. SECTION("object") {
  27. std::string json;
  28. serializeJson(doc, json);
  29. REQUIRE("{\"key\":\"value\"}" == json);
  30. }
  31. SECTION("serializeJsonPretty") {
  32. std::string json;
  33. serializeJsonPretty(doc, json);
  34. REQUIRE("{\r\n \"key\": \"value\"\r\n}" == json);
  35. }
  36. }
  37. TEST_CASE("serialize an std::string containing a NUL") {
  38. StaticJsonDocument<256> doc;
  39. doc.set(std::string("hello\0world", 11));
  40. CHECK(doc.memoryUsage() == 12);
  41. std::string json;
  42. serializeJson(doc, json);
  43. CHECK("\"hello\\u0000world\"" == json);
  44. }