std_stream.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. // ArduinoJson - https://arduinojson.org
  2. // Copyright © 2014-2022, Benoit BLANCHON
  3. // MIT License
  4. #include <ArduinoJson.h>
  5. #include <catch.hpp>
  6. #include <sstream>
  7. TEST_CASE("operator<<(std::ostream)") {
  8. DynamicJsonDocument doc(4096);
  9. std::ostringstream os;
  10. SECTION("JsonVariant containing false") {
  11. JsonVariant variant = doc.to<JsonVariant>();
  12. variant.set(false);
  13. os << variant;
  14. REQUIRE("false" == os.str());
  15. }
  16. SECTION("JsonVariant containing string") {
  17. JsonVariant variant = doc.to<JsonVariant>();
  18. variant.set("coucou");
  19. os << variant;
  20. REQUIRE("\"coucou\"" == os.str());
  21. }
  22. SECTION("JsonObject") {
  23. JsonObject object = doc.to<JsonObject>();
  24. object["key"] = "value";
  25. os << object;
  26. REQUIRE("{\"key\":\"value\"}" == os.str());
  27. }
  28. SECTION("MemberProxy") {
  29. JsonObject object = doc.to<JsonObject>();
  30. object["key"] = "value";
  31. os << object["key"];
  32. REQUIRE("\"value\"" == os.str());
  33. }
  34. SECTION("JsonArray") {
  35. JsonArray array = doc.to<JsonArray>();
  36. array.add("value");
  37. os << array;
  38. REQUIRE("[\"value\"]" == os.str());
  39. }
  40. SECTION("ElementProxy") {
  41. JsonArray array = doc.to<JsonArray>();
  42. array.add("value");
  43. os << array[0];
  44. REQUIRE("\"value\"" == os.str());
  45. }
  46. }