TestCtors.cpp 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. #include "TestSuite.h"
  2. #include "../Source/JSONNode.h"
  3. void TestSuite::TestConstructors(void){
  4. UnitTest::SetPrefix("TestCtor.cpp - Constructors");
  5. #ifdef JSON_LIBRARY
  6. JSONNODE * test = json_new(JSON_NULL);
  7. assertEquals(json_type(test), JSON_NULL);
  8. json_delete(test);
  9. test = json_new_a(JSON_TEXT("hello"), JSON_TEXT("world"));
  10. json_char * res = json_as_string(test);
  11. assertCStringSame(res, JSON_TEXT("world"));
  12. json_free(res);
  13. res = json_name(test);
  14. assertCStringSame(res, JSON_TEXT("hello"));
  15. json_free(res);
  16. assertEquals(json_type(test), JSON_STRING);
  17. json_delete(test);
  18. test = json_new_i(JSON_TEXT("hello"), 15);
  19. #ifdef JSON_CASTABLE
  20. res = json_as_string(test);
  21. assertCStringSame(res, JSON_TEXT("15"));
  22. json_free(res);
  23. #endif
  24. assertEquals_Primitive(json_as_int(test), 15);
  25. assertEquals_Primitive(json_as_float(test), 15.0f);
  26. res = json_name(test);
  27. assertCStringSame(res, JSON_TEXT("hello"));
  28. json_free(res);
  29. assertEquals(json_type(test), JSON_NUMBER);
  30. json_delete(test);
  31. test = json_new_f(JSON_TEXT("hello"), 15.5f);
  32. assertEquals_Primitive(json_as_int(test), 15);
  33. assertEquals_Primitive(json_as_float(test), 15.5f);
  34. #ifdef JSON_CASTABLE
  35. res = json_as_string(test);
  36. assertCStringSame(res, JSON_TEXT("15.5"));
  37. json_free(res);
  38. #endif
  39. res = json_name(test);
  40. assertCStringSame(res, JSON_TEXT("hello"));
  41. json_free(res);
  42. assertEquals(json_type(test), JSON_NUMBER);
  43. json_delete(test);
  44. test = json_new_b(JSON_TEXT("hello"), (int)true);
  45. #ifdef JSON_CASTABLE
  46. res = json_as_string(test);
  47. assertCStringSame(res, JSON_TEXT("true"));
  48. json_free(res);
  49. #endif
  50. assertEquals(json_as_bool(test), (int)true);
  51. res = json_name(test);
  52. assertCStringSame(res, JSON_TEXT("hello"));
  53. json_free(res);
  54. assertEquals(json_type(test), JSON_BOOL);
  55. JSONNODE * cpy = json_copy(test);
  56. assertTrue(json_equal(cpy, test));
  57. json_delete(cpy);
  58. json_delete(test);
  59. #else
  60. JSONNode test = JSONNode(JSON_NULL);
  61. assertEquals(test.type(), JSON_NULL);
  62. test = JSONNode(JSON_TEXT("hello"), JSON_TEXT("world"));
  63. assertEquals(test, JSON_TEXT("world"));
  64. assertEquals(test.as_string(), JSON_TEXT("world"));
  65. assertEquals(test.name(), JSON_TEXT("hello"));
  66. assertEquals(test.type(), JSON_STRING);
  67. test = JSONNode(JSON_TEXT("hello"), 15);
  68. assertEquals(test, 15);
  69. #ifdef JSON_CASTABLE
  70. assertEquals(test.as_string(), JSON_TEXT("15"));
  71. #endif
  72. assertEquals(test.as_int(), 15);
  73. assertEquals(test.as_float(), 15.0f);
  74. assertEquals(test.name(), JSON_TEXT("hello"));
  75. assertEquals(test.type(), JSON_NUMBER);
  76. test = JSONNode(JSON_TEXT("hello"), 15.5f);
  77. assertEquals(test, 15.5f);
  78. assertEquals(test.as_int(), 15);
  79. assertEquals(test.as_float(), 15.5f);
  80. #ifdef JSON_CASTABLE
  81. assertEquals(test.as_string(), JSON_TEXT("15.5"));
  82. #endif
  83. assertEquals(test.name(), JSON_TEXT("hello"));
  84. assertEquals(test.type(), JSON_NUMBER);
  85. test = JSONNode(JSON_TEXT("hello"), true);
  86. assertEquals(test, true);
  87. #ifdef JSON_CASTABLE
  88. assertEquals(test.as_string(), JSON_TEXT("true"));
  89. #endif
  90. assertEquals(test.as_bool(), true);
  91. assertEquals(test.name(), JSON_TEXT("hello"));
  92. assertEquals(test.type(), JSON_BOOL);
  93. test = JSONNode(json_string(JSON_TEXT("hello")), JSON_TEXT('\0'));
  94. assertEquals(test, 0);
  95. #ifdef JSON_CASTABLE
  96. assertEquals(test.as_string(), JSON_TEXT("0"));
  97. #endif
  98. assertEquals(test.as_int(), 0);
  99. assertEquals(test.as_float(), 0.0f);
  100. assertEquals(test.name(), JSON_TEXT("hello"));
  101. assertEquals(test.type(), JSON_NUMBER);
  102. #endif
  103. }