StringBuilder.cpp 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // ArduinoJson - arduinojson.org
  2. // Copyright Benoit Blanchon 2014-2018
  3. // MIT License
  4. #include <ArduinoJson/Memory/DynamicMemoryPool.hpp>
  5. #include <ArduinoJson/Memory/StringBuilder.hpp>
  6. #include <catch.hpp>
  7. using namespace ARDUINOJSON_NAMESPACE;
  8. TEST_CASE("DynamicMemoryPool::startString()") {
  9. SECTION("WorksWhenBufferIsBigEnough") {
  10. DynamicMemoryPool memoryPool(JSON_STRING_SIZE(8));
  11. StringBuilder str(&memoryPool);
  12. str.append("abcdefg");
  13. REQUIRE(memoryPool.blockCount() == 1);
  14. REQUIRE(str.complete().equals("abcdefg"));
  15. }
  16. SECTION("GrowsWhenBufferIsTooSmall") {
  17. DynamicMemoryPool memoryPool(JSON_STRING_SIZE(8));
  18. StringBuilder str(&memoryPool);
  19. str.append("abcdefghABC");
  20. REQUIRE(memoryPool.blockCount() == 2);
  21. REQUIRE(str.complete().equals("abcdefghABC"));
  22. }
  23. SECTION("SizeIncreases") {
  24. DynamicMemoryPool memoryPool(JSON_STRING_SIZE(5));
  25. StringBuilder str(&memoryPool);
  26. str.append('h');
  27. str.complete();
  28. REQUIRE(JSON_STRING_SIZE(2) == memoryPool.size());
  29. }
  30. }