JsonArrayTests.cpp 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. #include "CppUnitTest.h"
  2. #include "JsonArray.h"
  3. using namespace Microsoft::VisualStudio::CppUnitTestFramework;
  4. namespace JsonGeneratorTests
  5. {
  6. TEST_CLASS(JsonArrayTests)
  7. {
  8. JsonArray<2> arr;
  9. public:
  10. TEST_METHOD(EmptyArray)
  11. {
  12. AssertJsonIs("[]");
  13. }
  14. TEST_METHOD(AddNull)
  15. {
  16. arr.add((char*)0);
  17. AssertJsonIs("[null]");
  18. }
  19. TEST_METHOD(AddOneString)
  20. {
  21. arr.add("hello");
  22. AssertJsonIs("[\"hello\"]");
  23. }
  24. TEST_METHOD(AddOneStringContainingDoubleQuote)
  25. {
  26. arr.add("\"");
  27. AssertJsonIs("[\"\\\"\"]");
  28. }
  29. TEST_METHOD(AddTwoStrings)
  30. {
  31. arr.add("hello");
  32. arr.add("world");
  33. AssertJsonIs("[\"hello\",\"world\"]");
  34. }
  35. TEST_METHOD(AddOneStringOverCapacity)
  36. {
  37. arr.add("hello");
  38. arr.add("world");
  39. arr.add("lost");
  40. AssertJsonIs("[\"hello\",\"world\"]");
  41. }
  42. TEST_METHOD(AddOneNumber)
  43. {
  44. arr.add(3.14);
  45. AssertJsonIs("[3.14]");
  46. }
  47. TEST_METHOD(AddTwoNumbers)
  48. {
  49. arr.add(3.14);
  50. arr.add(2.72);
  51. AssertJsonIs("[3.14,2.72]");
  52. }
  53. TEST_METHOD(AddOneNumberOverCapacity)
  54. {
  55. arr.add(3.14);
  56. arr.add(2.72);
  57. arr.add(1.41);
  58. AssertJsonIs("[3.14,2.72]");
  59. }
  60. TEST_METHOD(AddTrue)
  61. {
  62. arr.add(true);
  63. AssertJsonIs("[true]");
  64. }
  65. TEST_METHOD(AddFalse)
  66. {
  67. arr.add(false);
  68. AssertJsonIs("[false]");
  69. }
  70. TEST_METHOD(AddTwoBooleans)
  71. {
  72. arr.add(false);
  73. arr.add(true);
  74. AssertJsonIs("[false,true]");
  75. }
  76. TEST_METHOD(AddOneBooleanOverCapacity)
  77. {
  78. arr.add(false);
  79. arr.add(true);
  80. arr.add(false);
  81. AssertJsonIs("[false,true]");
  82. }
  83. TEST_METHOD(AddOneEmptyNestedArray)
  84. {
  85. JsonArray<1> nestedArray;
  86. arr.add(nestedArray);
  87. AssertJsonIs("[[]]");
  88. }
  89. TEST_METHOD(AddOneNestedArrayWithOneItem)
  90. {
  91. JsonArray<1> nestedArray;
  92. nestedArray.add(3.14);
  93. arr.add(nestedArray);
  94. AssertJsonIs("[[3.14]]");
  95. }
  96. void AssertJsonIs(const char* expected)
  97. {
  98. char buffer[256];
  99. arr.writeTo(buffer, sizeof(buffer));
  100. Assert::AreEqual(expected, buffer);
  101. }
  102. };
  103. }