std_stream.cpp 1.2 KB

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