CustomWriter.cpp 812 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // ArduinoJson - arduinojson.org
  2. // Copyright Benoit Blanchon 2014-2019
  3. // MIT License
  4. #include <ArduinoJson.h>
  5. #include <catch.hpp>
  6. struct CustomWriter {
  7. std::string str;
  8. size_t write(uint8_t c) {
  9. str.append(1, static_cast<char>(c));
  10. return 1;
  11. }
  12. size_t write(const uint8_t *s, size_t n) {
  13. str.append(reinterpret_cast<const char *>(s), n);
  14. return n;
  15. }
  16. };
  17. TEST_CASE("CustomWriter") {
  18. DynamicJsonDocument doc(4096);
  19. JsonArray array = doc.to<JsonArray>();
  20. array.add(4);
  21. array.add(2);
  22. SECTION("serializeJson()") {
  23. CustomWriter writer;
  24. serializeJson(array, writer);
  25. REQUIRE("[4,2]" == writer.str);
  26. }
  27. SECTION("serializeJsonPretty") {
  28. CustomWriter writer;
  29. serializeJsonPretty(array, writer);
  30. REQUIRE("[\r\n 4,\r\n 2\r\n]" == writer.str);
  31. }
  32. }