StringBuilderAppendEscapedTests.cpp 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #include "CppUnitTest.h"
  2. #include "StringBuilder.h"
  3. using namespace Microsoft::VisualStudio::CppUnitTestFramework;
  4. namespace JsonGeneratorTests
  5. {
  6. TEST_CLASS(StringBuilderAppendEscapedTests)
  7. {
  8. char buffer[20];
  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(NULL);
  27. assertResultIs("null");
  28. }
  29. TEST_METHOD(OneString)
  30. {
  31. append("ABCD");
  32. assertResultIs("\"ABCD\"");
  33. }
  34. TEST_METHOD(OneTwoStrings)
  35. {
  36. append("ABCD");
  37. append("EFGH");
  38. assertResultIs("\"ABCD\"\"EFGH\"");
  39. }
  40. TEST_METHOD(OverCapacity)
  41. {
  42. append("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
  43. assertResultIs("\"ABCDEFGHIJKLMNOPQ\"");
  44. append("");
  45. assertResultIs("\"ABCDEFGHIJKLMNOPQ\"");
  46. }
  47. TEST_METHOD(SpecialChars)
  48. {
  49. append("\\\"\b\f\n\r\t");
  50. assertResultIs("\"\\\\\\\"\\b\\f\\n\\r\\t\"");
  51. }
  52. void append(const char* s)
  53. {
  54. sb->appendEscaped(s);
  55. }
  56. void assertResultIs(const char* expected)
  57. {
  58. Assert::AreEqual(expected, buffer);
  59. }
  60. };
  61. }