startString.cpp 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // ArduinoJson - arduinojson.org
  2. // Copyright Benoit Blanchon 2014-2023
  3. // MIT License
  4. #include <ArduinoJson.h>
  5. #include <catch.hpp>
  6. TEST_CASE("DynamicJsonBuffer::startString()") {
  7. SECTION("WorksWhenBufferIsBigEnough") {
  8. DynamicJsonBuffer jsonBuffer(6);
  9. DynamicJsonBuffer::String str = jsonBuffer.startString();
  10. str.append('h');
  11. str.append('e');
  12. str.append('l');
  13. str.append('l');
  14. str.append('o');
  15. REQUIRE(std::string("hello") == str.c_str());
  16. }
  17. SECTION("GrowsWhenBufferIsTooSmall") {
  18. DynamicJsonBuffer jsonBuffer(5);
  19. DynamicJsonBuffer::String str = jsonBuffer.startString();
  20. str.append('h');
  21. str.append('e');
  22. str.append('l');
  23. str.append('l');
  24. str.append('o');
  25. REQUIRE(std::string("hello") == str.c_str());
  26. }
  27. SECTION("SizeIncreases") {
  28. DynamicJsonBuffer jsonBuffer(5);
  29. DynamicJsonBuffer::String str = jsonBuffer.startString();
  30. REQUIRE(0 == jsonBuffer.size());
  31. str.append('h');
  32. REQUIRE(1 == jsonBuffer.size());
  33. str.c_str();
  34. REQUIRE(2 == jsonBuffer.size());
  35. }
  36. }