test/json.c

Thu, 11 Dec 2025 22:58:02 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Thu, 11 Dec 2025 22:58:02 +0100
changeset 29
b8c826c720f3
parent 28
e46f9f254fcd
child 30
d33eaaec15da
permissions
-rw-r--r--

implement list to json serialization

26
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
1 /*
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
3 *
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
4 * Copyright 2025 Olaf Wintermann. All rights reserved.
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
5 *
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
6 * Redistribution and use in source and binary forms, with or without
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
7 * modification, are permitted provided that the following conditions are met:
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
8 *
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
9 * 1. Redistributions of source code must retain the above copyright
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
10 * notice, this list of conditions and the following disclaimer.
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
11 *
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
12 * 2. Redistributions in binary form must reproduce the above copyright
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
13 * notice, this list of conditions and the following disclaimer in the
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
14 * documentation and/or other materials provided with the distribution.
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
15 *
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
26 * POSSIBLIITY OF SUCH DAMAGE.
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
27 */
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
28
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
29 #include "json.h"
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
30
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
31 #include <stdbool.h>
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
32 #include <cx/buffer.h>
29
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
33 #include <cx/linked_list.h>
26
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
34
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
35 typedef struct Test1 {
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
36 char *str;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
37 cxmutstr str2;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
38 int8_t i8;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
39 uint8_t u8;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
40 int64_t i64;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
41 int16_t i16;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
42 int32_t i32;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
43 uint32_t u32;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
44 uint16_t u16;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
45 uint64_t u64;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
46 bool bt;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
47 bool bf;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
48 double d;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
49 } Test1;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
50
28
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
51 typedef struct Test2 {
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
52 char *name;
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
53 int i;
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
54 } Test2;
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
55
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
56 typedef struct Test3 {
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
57 char *test3;
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
58 Test2 *test2;
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
59 } Test3;
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
60
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
61 typedef struct Test4 {
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
62 int id;
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
63 Test3 *test3;
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
64 Test2 *test2;
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
65 } Test4;
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
66
29
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
67 typedef struct Test5 {
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
68 char *test;
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
69 CxList *test2List;
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
70 } Test5;
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
71
26
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
72 static DBUContext *ctx;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
73 static DBUClass *test1_class;
28
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
74 static DBUClass *test2_class;
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
75 static DBUClass *test3_class;
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
76 static DBUClass *test4_class;
29
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
77 static DBUClass *test5_class;
26
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
78
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
79 int init_json_tests(void) {
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
80 ctx = dbuContextCreate();
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
81
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
82 test1_class = dbuRegisterClassWithoutPK(ctx, "test1", sizeof(Test1));
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
83 dbuClassAdd(test1_class, Test1, str);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
84 dbuClassAdd(test1_class, Test1, str2);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
85 dbuClassAdd(test1_class, Test1, i8);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
86 dbuClassAdd(test1_class, Test1, u8);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
87 dbuClassAdd(test1_class, Test1, i16);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
88 dbuClassAdd(test1_class, Test1, u16);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
89 dbuClassAdd(test1_class, Test1, i32);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
90 dbuClassAdd(test1_class, Test1, u32);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
91 dbuClassAdd(test1_class, Test1, i64);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
92 dbuClassAdd(test1_class, Test1, u64);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
93 dbuClassAdd(test1_class, Test1, bt);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
94 dbuClassAdd(test1_class, Test1, bf);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
95 dbuClassAdd(test1_class, Test1, d);
28
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
96
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
97 test2_class = dbuRegisterClassWithoutPK(ctx, "test2", sizeof(Test2));
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
98 dbuClassAdd(test2_class, Test2, name);
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
99 dbuClassAdd(test2_class, Test2, i);
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
100
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
101 test3_class = dbuRegisterClassWithoutPK(ctx, "test3", sizeof(Test3));
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
102 dbuClassAdd(test3_class, Test3, test3);
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
103 dbuClassAddObj(test3_class, "test2", offsetof(Test3, test2), test2_class);
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
104
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
105 test4_class = dbuRegisterClassWithoutPK(ctx, "test4", sizeof(Test4));
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
106 dbuClassAdd(test4_class, Test4, id);
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
107 dbuClassAddObj(test4_class, "test2", offsetof(Test4, test2), test2_class);
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
108 dbuClassAddObj(test4_class, "test3", offsetof(Test4, test3), test3_class);
29
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
109
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
110 test5_class = dbuRegisterClassWithoutPK(ctx, "test5", sizeof(Test5));
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
111 dbuClassAdd(test5_class, Test5, test);
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
112 dbuClassAddCxLinkedList(test5_class, "test2List", offsetof(Test5, test2List), test2_class);
26
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
113 }
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
114
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
115 void cleanup_json_tests(void) {
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
116 dbuContextFree(ctx);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
117 }
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
118
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
119 CX_TEST(testObjectToJsonSimple) {
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
120 Test1 test;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
121 test.str = "hello str";
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
122 test.str2 = cx_mutstr("hello cx str");
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
123 test.i8 = 32;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
124 test.u8 = 250;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
125 test.i16 = -5533;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
126 test.u16 = 8000;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
127 test.i32 = -123456;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
128 test.u32 = 4000000000;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
129 test.i64 = -999999999999L;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
130 test.u64 = 2501;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
131 test.bt = true;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
132 test.bf = false;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
133 test.d = 431.15;
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
134
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
135 CX_TEST_DO {
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
136 CxJsonValue *value = dbuObjectToJson(test1_class, &test, NULL);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
137
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
138 CX_TEST_ASSERT(value);
28
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
139 CX_TEST_ASSERT(cxJsonIsObject(value));
26
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
140
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
141 CxJsonValue *str = cxJsonObjGet(value, "str");
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
142 CxJsonValue *str2 = cxJsonObjGet(value, "str2");
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
143 CxJsonValue *i8 = cxJsonObjGet(value, "i8");
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
144 CxJsonValue *u8 = cxJsonObjGet(value, "u8");
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
145 CxJsonValue *i16 = cxJsonObjGet(value, "i16");
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
146 CxJsonValue *u16 = cxJsonObjGet(value, "u16");
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
147 CxJsonValue *i32 = cxJsonObjGet(value, "i32");
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
148 CxJsonValue *u32 = cxJsonObjGet(value, "u32");
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
149 CxJsonValue *i64 = cxJsonObjGet(value, "i64");
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
150 CxJsonValue *u64 = cxJsonObjGet(value, "u64");
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
151 CxJsonValue *bt = cxJsonObjGet(value, "bt");
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
152 CxJsonValue *bf = cxJsonObjGet(value, "bf");
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
153 CxJsonValue *d = cxJsonObjGet(value, "d");
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
154
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
155 CX_TEST_ASSERT(str && str->type == CX_JSON_STRING);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
156 CX_TEST_ASSERT(str2 && str2->type == CX_JSON_STRING);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
157 CX_TEST_ASSERT(i8 && i8->type == CX_JSON_INTEGER);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
158 CX_TEST_ASSERT(u8 && u8->type == CX_JSON_INTEGER);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
159 CX_TEST_ASSERT(i16 && i16->type == CX_JSON_INTEGER);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
160 CX_TEST_ASSERT(u16 && u16->type == CX_JSON_INTEGER);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
161 CX_TEST_ASSERT(i32 && i32->type == CX_JSON_INTEGER);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
162 CX_TEST_ASSERT(u32 && u32->type == CX_JSON_INTEGER);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
163 CX_TEST_ASSERT(i64 && i64->type == CX_JSON_INTEGER);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
164 CX_TEST_ASSERT(u64 && u64->type == CX_JSON_INTEGER);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
165 CX_TEST_ASSERT(d && d->type == CX_JSON_NUMBER);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
166
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
167 CX_TEST_ASSERT(!cx_strcmp(str->value.string, test.str));
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
168 CX_TEST_ASSERT(!cx_strcmp(str2->value.string, test.str2));
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
169 CX_TEST_ASSERT(i8->value.integer == test.i8);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
170 CX_TEST_ASSERT(u8->value.integer == test.u8);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
171 CX_TEST_ASSERT(i16->value.integer == test.i16);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
172 CX_TEST_ASSERT(u16->value.integer == test.u16);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
173 CX_TEST_ASSERT(i32->value.integer == test.i32);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
174 CX_TEST_ASSERT(u32->value.integer == test.u32);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
175 CX_TEST_ASSERT(i64->value.integer == test.i64);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
176 CX_TEST_ASSERT(u64->value.integer == test.u64);
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
177 CX_TEST_ASSERT(d->value.number < test.d + 0.1 && d->value.number > test.d - 0.1);
28
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
178
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
179 cxJsonValueFree(value);
26
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
180 }
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
181 }
dc36aa437249 implement json primitives serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
182
28
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
183 CX_TEST(testObjectToJsonChildObj) {
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
184 Test2 t2_1;
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
185 t2_1.i = 12;
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
186 t2_1.name = "t2_1";
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
187
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
188 Test2 t2_2;
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
189 t2_2.i = 45;
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
190 t2_2.name = "t2_2";
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
191
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
192 Test3 t3;
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
193 t3.test3 = "t3";
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
194 t3.test2 = &t2_1;
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
195
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
196 Test4 t4;
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
197 t4.id = 15;
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
198 t4.test2 = &t2_2;
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
199 t4.test3 = &t3;
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
200
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
201 CX_TEST_DO {
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
202 CxJsonValue *value = dbuObjectToJson(test4_class, &t4, NULL);
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
203
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
204 CX_TEST_ASSERT(value);
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
205 CX_TEST_ASSERT(cxJsonIsObject(value));
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
206
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
207 CxJsonValue *v = cxJsonObjGet(value, "id");
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
208 CX_TEST_ASSERT(v);
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
209 CX_TEST_ASSERT(cxJsonIsInteger(v));
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
210 CX_TEST_ASSERT(v->value.integer == t4.id);
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
211
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
212 v = cxJsonObjGet(value, "test2");
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
213 CX_TEST_ASSERT(v);
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
214 CX_TEST_ASSERT(cxJsonIsObject(v));
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
215
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
216 CxJsonValue *s = cxJsonObjGet(v, "i");
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
217 CX_TEST_ASSERT(s);
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
218 CX_TEST_ASSERT(cxJsonIsInteger(s));
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
219 CX_TEST_ASSERT(s->value.integer == t2_2.i);
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
220
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
221 s = cxJsonObjGet(v, "name");
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
222 CX_TEST_ASSERT(s);
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
223 CX_TEST_ASSERT(cxJsonIsString(s));
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
224 CX_TEST_ASSERT(!cx_strcmp(s->value.string, t2_2.name));
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
225
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
226 v = cxJsonObjGet(value, "test3");
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
227 CX_TEST_ASSERT(v);
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
228 CX_TEST_ASSERT(cxJsonIsObject(v));
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
229
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
230 s = cxJsonObjGet(v, "test3");
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
231 CX_TEST_ASSERT(s);
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
232 CX_TEST_ASSERT(cxJsonIsString(s));
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
233 CX_TEST_ASSERT(!cx_strcmp(s->value.string, t3.test3));
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
234
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
235 s = cxJsonObjGet(v, "test2");
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
236 CX_TEST_ASSERT(s);
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
237 CX_TEST_ASSERT(cxJsonIsObject(s));
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
238
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
239 CxJsonValue *x = cxJsonObjGet(s, "i");
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
240 CX_TEST_ASSERT(x);
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
241 CX_TEST_ASSERT(cxJsonIsInteger(x));
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
242 CX_TEST_ASSERT(x->value.integer == t2_1.i);
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
243
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
244 x = cxJsonObjGet(s, "name");
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
245 CX_TEST_ASSERT(x);
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
246 CX_TEST_ASSERT(cxJsonIsString(x));
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
247 CX_TEST_ASSERT(!cx_strcmp(x->value.string, t2_1.name));
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
248
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
249 cxJsonValueFree(value);
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
250 }
e46f9f254fcd implement json child object serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 26
diff changeset
251 }
29
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
252
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
253 CX_TEST(testObjectToJsonChildList) {
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
254 Test5 test5;
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
255 test5.test = "hello";
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
256 test5.test2List = cxLinkedListCreateSimple(CX_STORE_POINTERS);
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
257
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
258 Test2 c1;
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
259 c1.i = 1;
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
260 c1.name = "c1";
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
261
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
262 Test2 c2;
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
263 c2.i = 2;
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
264 c2.name = "c2";
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
265
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
266 Test2 c3;
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
267 c3.i = 3;
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
268 c3.name = "c3";
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
269
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
270 cxListAdd(test5.test2List, &c1);
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
271 cxListAdd(test5.test2List, &c2);
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
272 cxListAdd(test5.test2List, &c3);
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
273
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
274 CX_TEST_DO {
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
275 CxJsonValue *value = dbuObjectToJson(test5_class, &test5, NULL);
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
276 CX_TEST_ASSERT(value);
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
277 CX_TEST_ASSERT(cxJsonIsObject(value));
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
278
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
279 CxJsonValue *v = cxJsonObjGet(value, "test");
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
280 CX_TEST_ASSERT(v);
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
281 CX_TEST_ASSERT(cxJsonIsString(v));
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
282 CX_TEST_ASSERT(!cx_strcmp(v->value.string, test5.test));
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
283
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
284 v = cxJsonObjGet(value, "test2List");
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
285 CX_TEST_ASSERT(v);
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
286 CX_TEST_ASSERT(cxJsonIsArray(v));
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
287
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
288 CxJsonValue *x = cxJsonArrGet(v, 0);
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
289 CX_TEST_ASSERT(cxJsonIsObject(x));
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
290 CxJsonValue *z = cxJsonObjGet(x, "i");
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
291 CX_TEST_ASSERT(cxJsonIsInteger(z));
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
292 CX_TEST_ASSERT(z->value.integer == c1.i);
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
293 z = cxJsonObjGet(x, "name");
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
294 CX_TEST_ASSERT(cxJsonIsString(z));
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
295 CX_TEST_ASSERT(!cx_strcmp(z->value.string, c1.name));
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
296
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
297 x = cxJsonArrGet(v, 1);
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
298 CX_TEST_ASSERT(cxJsonIsObject(x));
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
299 z = cxJsonObjGet(x, "i");
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
300 CX_TEST_ASSERT(cxJsonIsInteger(z));
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
301 CX_TEST_ASSERT(z->value.integer == c2.i);
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
302 z = cxJsonObjGet(x, "name");
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
303 CX_TEST_ASSERT(cxJsonIsString(z));
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
304 CX_TEST_ASSERT(!cx_strcmp(z->value.string, c2.name));
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
305
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
306 x = cxJsonArrGet(v, 2);
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
307 CX_TEST_ASSERT(cxJsonIsObject(x));
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
308 z = cxJsonObjGet(x, "i");
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
309 CX_TEST_ASSERT(cxJsonIsInteger(z));
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
310 CX_TEST_ASSERT(z->value.integer == c3.i);
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
311 z = cxJsonObjGet(x, "name");
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
312 CX_TEST_ASSERT(cxJsonIsString(z));
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
313 CX_TEST_ASSERT(!cx_strcmp(z->value.string, c3.name));
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
314
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
315 cxJsonValueFree(value);
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
316 }
b8c826c720f3 implement list to json serialization
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 28
diff changeset
317 }

mercurial