remove.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. static const char* null = 0;
  8. TEST_CASE("JsonVariant::remove()") {
  9. DynamicJsonDocument doc(4096);
  10. JsonVariant var = doc.to<JsonVariant>();
  11. SECTION("remove(int)") {
  12. var.add(1);
  13. var.add(2);
  14. var.add(3);
  15. var.remove(1);
  16. REQUIRE(var.as<std::string>() == "[1,3]");
  17. }
  18. SECTION("remove(const char *)") {
  19. var["a"] = 1;
  20. var["b"] = 2;
  21. var.remove("a");
  22. REQUIRE(var.as<std::string>() == "{\"b\":2}");
  23. }
  24. SECTION("remove(std::string)") {
  25. var["a"] = 1;
  26. var["b"] = 2;
  27. var.remove(std::string("b"));
  28. REQUIRE(var.as<std::string>() == "{\"a\":1}");
  29. }
  30. SECTION("linked array") {
  31. StaticJsonDocument<128> doc2;
  32. doc2[0] = 42;
  33. var.link(doc2);
  34. var.remove(0);
  35. CHECK(var.as<std::string>() == "[42]");
  36. }
  37. SECTION("linked object") {
  38. StaticJsonDocument<128> doc2;
  39. doc2["hello"] = "world";
  40. var.link(doc2);
  41. var.remove("hello");
  42. CHECK(var.as<std::string>() == "{\"hello\":\"world\"}");
  43. }
  44. }