| 118 } Role; |
123 } Role; |
| 119 |
124 |
| 120 int init_db_tests(void) { |
125 int init_db_tests(void) { |
| 121 ctx = dbuContextCreate(); |
126 ctx = dbuContextCreate(); |
| 122 |
127 |
| 123 DBUClass *address = dbuRegisterClass(ctx, "address", Address, address_id); |
128 address = dbuRegisterClass(ctx, "address", Address, address_id); |
| 124 dbuClassAdd(address, Address, street); |
129 dbuClassAdd(address, Address, street); |
| 125 dbuClassAdd(address, Address, zip); |
130 dbuClassAdd(address, Address, zip); |
| 126 dbuClassAdd(address, Address, city); |
131 dbuClassAdd(address, Address, city); |
| 127 |
132 |
| 128 DBUClass *role = dbuRegisterClass(ctx, "role", Role, role_id); |
133 role = dbuRegisterClass(ctx, "role", Role, role_id); |
| 129 |
134 |
| 130 DBUClass *person = dbuRegisterClass(ctx, "person", Person, person_id); |
135 person = dbuRegisterClass(ctx, "person", Person, person_id); |
| 131 dbuClassAdd(person, Person, name); |
136 dbuClassAdd(person, Person, name); |
| 132 dbuClassAdd(person, Person, email); |
137 dbuClassAdd(person, Person, email); |
| 133 dbuClassAdd(person, Person, age); |
138 dbuClassAdd(person, Person, age); |
| 134 dbuClassAdd(person, Person, iscustomer); |
139 dbuClassAdd(person, Person, iscustomer); |
| 135 dbuClassAdd(person, Person, hash); |
140 dbuClassAdd(person, Person, hash); |
| 224 CX_TEST_ASSERT(dbuResultAsValue(r, &value) == 0); |
229 CX_TEST_ASSERT(dbuResultAsValue(r, &value) == 0); |
| 225 CX_TEST_ASSERT(!cx_strcmp(value, "bob")); |
230 CX_TEST_ASSERT(!cx_strcmp(value, "bob")); |
| 226 free(value.ptr); |
231 free(value.ptr); |
| 227 } |
232 } |
| 228 } |
233 } |
| |
234 |
| |
235 CX_TEST(testSingleTableQuery) { |
| |
236 CxMempool *mp = cxMempoolCreateSimple(64); |
| |
237 |
| |
238 CX_TEST_DO { |
| |
239 DBUQuery *query = dbuQueryCreate(conn, mp->allocator, "select * from address order by street;"); |
| |
240 DBUObjectBuilder *builder = dbuObjectBuilder(address, query, mp->allocator); |
| |
241 CxList *adr = dbuObjectBuilderGetList(builder); |
| |
242 |
| |
243 CX_TEST_ASSERT(adr); |
| |
244 CX_TEST_ASSERT(cxListSize(adr) == 2); |
| |
245 |
| |
246 Address *a0 = cxListAt(adr, 0); |
| |
247 Address *a1 = cxListAt(adr, 1); |
| |
248 CX_TEST_ASSERT(a0); |
| |
249 CX_TEST_ASSERT(a1); |
| |
250 CX_TEST_ASSERT(!cx_strcmp(a0->street, "street 1")); |
| |
251 CX_TEST_ASSERT(!cx_strcmp(a1->street, "street 2")); |
| |
252 CX_TEST_ASSERT(!cx_strcmp(a0->zip, "12343")); |
| |
253 CX_TEST_ASSERT(!cx_strcmp(a1->zip, "23456")); |
| |
254 CX_TEST_ASSERT(!cx_strcmp(a0->city, "city 17")); |
| |
255 CX_TEST_ASSERT(!cx_strcmp(a1->city, "city 18")); |
| |
256 } |
| |
257 |
| |
258 cxMempoolFree(mp); |
| |
259 } |