StringBuilderTests.cpp 1.7 KB

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