versadac  1
versadac - Scalable Recorder Firmware
TestSuite.h
1 #ifndef TESTSUITE_H
2 #define TESTSUITE_H
3 
4 #include "UnitTest.h"
5 #include "../../JSONOptions.h"
6 #include "../../libjson.h"
7 #include "../Source/JSONNode.h"
8 
9 #include <iostream>
10 using namespace std;
11 
12 /*
13  This class tests libjson's internal working and it's
14  C++ interface
15 */
16 
17 #ifdef JSON_UNICODE
18  #define assertCStringSame(a, b) assertCStringEqualsW(a, b)
19  #define assertCStringNotSame(a, b) assertCStringNotEqualsW(a, b)
20 #else
21  #define assertCStringSame(a, b) assertCStringEquals(a, b)
22  #define assertCStringNotSame(a, b) assertCStringNotEquals(a, b)
23 #endif
24 
25 
26 class TestSuite {
27 public:
28  static void TestSelf(void);
29  static void TestString(void);
30  static void TestConverters(void);
31 #ifdef JSON_BINARY
32  static void TestBase64(void);
33 #endif
34  static void TestReferenceCounting(void);
35  static void TestConstructors(void);
36  static void TestAssigning(void);
37  static void TestEquality(void);
38  static void TestInequality(void);
39  static void TestChildren(void);
40  static void TestFunctions(void);
41  static void TestIterators(void);
42  static void TestInspectors(void);
43  static void TestNamespace(void);
44  static void TestValidator(void);
45  static void TestStreams(void);
46 #ifdef JSON_WRITE_PRIORITY
47  static void TestWriter(void);
48 #endif
49 #ifdef JSON_COMMENTS
50  static void TestComments(void);
51 #endif
52 #ifdef JSON_MUTEX_CALLBACKS
53  static void TestMutex(void);
54  static void TestThreading(void);
55 #endif
56  static void TestSharedString(void);
57  static void TestFinal(void);
58 
59 
60 
61 
62 
63 #ifdef JSON_LIBRARY
64  static void testParsingItself(JSONNODE * x){
65  #if defined(JSON_WRITE_PRIORITY) && defined(JSON_READ_PRIORITY)
66  {
67  json_char * written = json_write(x);
68  JSONNODE * copy = json_parse(written);
69  assertTrue(json_equal(x, copy));
70  json_delete(copy);
71  json_free(written);
72  }
73  {
74  json_char * written = json_write_formatted(x);
75  JSONNODE * copy = json_parse(written);
76  assertTrue(json_equal(x, copy));
77  json_delete(copy);
78  json_free(written);
79  }
80  {
81  json_char * written = json_write_formatted(x);
82  json_char * written2 = json_write(x);
83  json_char * stripped = json_strip_white_space(written);
84  assertCStringSame(written2, stripped);
85  json_free(stripped);
86  json_free(written);
87  json_free(written2);
88  }
89  #endif
90  {
91  JSONNODE * copy = json_duplicate(x);
92  assertTrue(json_equal(x, copy));
93  json_delete(copy);
94  }
95  }
96 #else
97  static void testParsingItself(JSONNode & x){
98  #if defined(JSON_WRITE_PRIORITY) && defined(JSON_READ_PRIORITY)
99  assertEquals(libjson::parse(x.write()), x);
100  assertEquals(libjson::parse(x.write_formatted()), x);
101  assertEquals(libjson::strip_white_space(x.write_formatted()), x.write());
102  #endif
103  assertEquals(x, x.duplicate())
104  }
105 #endif
106 };
107 
108 #endif
109 
Definition: JSONNode.h:132
Definition: TestSuite.h:26