add.cpp 942 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // ArduinoJson - https://arduinojson.org
  2. // Copyright © 2014-2022, Benoit BLANCHON
  3. // MIT License
  4. #include <ArduinoJson.h>
  5. #include <stdint.h>
  6. #include <catch.hpp>
  7. TEST_CASE("JsonVariant::add()") {
  8. DynamicJsonDocument doc(4096);
  9. JsonVariant var = doc.to<JsonVariant>();
  10. SECTION("add integer to new variant") {
  11. var.add(42);
  12. REQUIRE(var.as<std::string>() == "[42]");
  13. }
  14. SECTION("add const char* to new variant") {
  15. var.add("hello");
  16. REQUIRE(var.as<std::string>() == "[\"hello\"]");
  17. }
  18. SECTION("add std::string to new variant") {
  19. var.add(std::string("hello"));
  20. REQUIRE(var.as<std::string>() == "[\"hello\"]");
  21. }
  22. SECTION("add integer to integer") {
  23. var.set(123);
  24. var.add(456); // no-op
  25. REQUIRE(var.as<std::string>() == "123");
  26. }
  27. SECTION("add integer to object") {
  28. var["val"] = 123;
  29. var.add(456); // no-op
  30. REQUIRE(var.as<std::string>() == "{\"val\":123}");
  31. }
  32. }