StringBuilderAppendTests.cpp 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #include "CppUnitTest.h"
  2. #include "StringBuilder.h"
  3. using namespace Microsoft::VisualStudio::CppUnitTestFramework;
  4. namespace JsonGeneratorTests
  5. {
  6. TEST_CLASS(StringBuilderAppendTests)
  7. {
  8. char buffer[16];
  9. StringBuilder* sb;
  10. public:
  11. TEST_METHOD_INITIALIZE(Initialize)
  12. {
  13. sb = new StringBuilder(buffer, sizeof(buffer));
  14. }
  15. TEST_METHOD(InitialState)
  16. {
  17. assertResultIs("");
  18. }
  19. TEST_METHOD(EmptyString)
  20. {
  21. append("");
  22. assertResultIs("");
  23. }
  24. TEST_METHOD(Null)
  25. {
  26. append((char*)0);
  27. assertResultIs("null");
  28. }
  29. TEST_METHOD(Number)
  30. {
  31. append(3.14);
  32. assertResultIs("3.14");
  33. }
  34. TEST_METHOD(OneString)
  35. {
  36. append("ABCD");
  37. assertResultIs("ABCD");
  38. }
  39. TEST_METHOD(TwoStrings)
  40. {
  41. append("ABCD");
  42. append("EFGH");
  43. assertResultIs("ABCDEFGH");
  44. }
  45. TEST_METHOD(OverCapacity)
  46. {
  47. append("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
  48. assertResultIs("ABCDEFGHIJKLMNO");
  49. }
  50. TEST_METHOD(SpecialChars)
  51. {
  52. append("\\\"\b\f\n\r");
  53. assertResultIs("\\\"\b\f\n\r");
  54. }
  55. void append(double d)
  56. {
  57. sb->append(d);
  58. }
  59. void append(const char* s)
  60. {
  61. sb->append(s);
  62. }
  63. void assertResultIs(const char* expected)
  64. {
  65. Assert::AreEqual(expected, buffer);
  66. }
  67. };
  68. }