StringBuilderTests.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #include <gtest/gtest.h>
  2. #include <Internals/StringBuilder.h>
  3. using namespace ArduinoJson::Internals;
  4. class StringBuilderTests : public testing::Test
  5. {
  6. protected:
  7. virtual void SetUp()
  8. {
  9. sb = new StringBuilder(buffer, sizeof(buffer));
  10. }
  11. void print(const char* value)
  12. {
  13. returnValue = sb->print(value);
  14. }
  15. void outputMustBe(const char* expected)
  16. {
  17. EXPECT_STREQ(expected, buffer);
  18. }
  19. void resultMustBe(size_t expected)
  20. {
  21. EXPECT_EQ(expected, returnValue);
  22. }
  23. private:
  24. char buffer[20];
  25. Print* sb;
  26. size_t returnValue;
  27. };
  28. TEST_F(StringBuilderTests, InitialState)
  29. {
  30. outputMustBe("");
  31. }
  32. TEST_F(StringBuilderTests, OverCapacity)
  33. {
  34. print("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
  35. resultMustBe(19);
  36. print("ABC");
  37. resultMustBe(0);
  38. outputMustBe("ABCDEFGHIJKLMNOPQRS");
  39. }
  40. TEST_F(StringBuilderTests, EmptyString)
  41. {
  42. print("");
  43. resultMustBe(0);
  44. outputMustBe("");
  45. }
  46. TEST_F(StringBuilderTests, OneString)
  47. {
  48. print("ABCD");
  49. resultMustBe(4);
  50. outputMustBe("ABCD");
  51. }
  52. TEST_F(StringBuilderTests, TwoStrings)
  53. {
  54. print("ABCD");
  55. resultMustBe(4);
  56. print("EFGH");
  57. resultMustBe(4);
  58. outputMustBe("ABCDEFGH");
  59. }