StringBuilderTests.cpp 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /*
  2. * Arduino JSON library
  3. * Benoit Blanchon 2014 - MIT License
  4. */
  5. #include "CppUnitTest.h"
  6. #include "StringBuilder.h"
  7. using namespace Microsoft::VisualStudio::CppUnitTestFramework;
  8. using namespace ArduinoJson::Internals;
  9. namespace JsonGeneratorTests
  10. {
  11. TEST_CLASS(StringBuilderTests)
  12. {
  13. char buffer[20];
  14. Print* sb;
  15. size_t returnValue;
  16. public:
  17. TEST_METHOD_INITIALIZE(Initialize)
  18. {
  19. sb = new StringBuilder(buffer, sizeof(buffer));
  20. }
  21. TEST_METHOD(InitialState)
  22. {
  23. outputMustBe("");
  24. }
  25. TEST_METHOD(OverCapacity)
  26. {
  27. print("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
  28. resultMustBe(19);
  29. print("ABC");
  30. resultMustBe(0);
  31. outputMustBe("ABCDEFGHIJKLMNOPQRS");
  32. }
  33. TEST_METHOD(EmptyString)
  34. {
  35. print("");
  36. resultMustBe(0);
  37. outputMustBe("");
  38. }
  39. TEST_METHOD(OneString)
  40. {
  41. print("ABCD");
  42. resultMustBe(4);
  43. outputMustBe("ABCD");
  44. }
  45. TEST_METHOD(TwoStrings)
  46. {
  47. print("ABCD");
  48. resultMustBe(4);
  49. print("EFGH");
  50. resultMustBe(4);
  51. outputMustBe("ABCDEFGH");
  52. }
  53. private:
  54. void print(const char* value)
  55. {
  56. returnValue = sb->print(value);
  57. }
  58. void outputMustBe(const char* expected)
  59. {
  60. Assert::AreEqual(expected, buffer);
  61. }
  62. void resultMustBe(size_t expected)
  63. {
  64. Assert::AreEqual(expected, returnValue);
  65. }
  66. };
  67. }