StringBuilderAppendEscapedTests.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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(OneString)
  25. {
  26. append("ABCD");
  27. assertResultIs("\"ABCD\"");
  28. }
  29. TEST_METHOD(OneTwoStrings)
  30. {
  31. append("ABCD");
  32. append("EFGH");
  33. assertResultIs("\"ABCD\"\"EFGH\"");
  34. }
  35. TEST_METHOD(OverCapacity)
  36. {
  37. append("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
  38. assertResultIs("\"ABCDEFGHIJKLMNOPQ\"");
  39. }
  40. TEST_METHOD(SpecialChars)
  41. {
  42. append("\\\"\b\f\n\r\t");
  43. assertResultIs("\"\\\\\\\"\\b\\f\\n\\r\\t\"");
  44. }
  45. void append(const char* s)
  46. {
  47. sb->appendEscaped(s);
  48. }
  49. void assertResultIs(const char* expected)
  50. {
  51. Assert::AreEqual(expected, buffer);
  52. }
  53. };
  54. }