OpenDNSSEC-enforcer 2.1.12
test_classes.c
Go to the documentation of this file.
1/*
2 * Copyright (c) 2014 Jerry Lundström <lundstrom.jerry@gmail.com>
3 * Copyright (c) 2014 .SE (The Internet Infrastructure Foundation).
4 * Copyright (c) 2014 OpenDNSSEC AB (svb)
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
22 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
24 * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
25 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
26 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 *
28 */
29
30#include "../db_backend.h"
31#include "../db_clause.h"
32#include "../db_configuration.h"
33#include "../db_connection.h"
34#include "../db_join.h"
35#include "../db_object.h"
36#include "../db_result.h"
37#include "../db_value.h"
38
39#include "CUnit/Basic.h"
40
41static int fake_pointer = 0;
42static db_backend_handle_t* backend_handle = NULL;
43static db_backend_t* backend = NULL;
44static db_clause_t* clause = NULL;
45static db_clause_t* clause2 = NULL;
46static db_clause_list_t* clause_list = NULL;
47static db_configuration_t* configuration = NULL;
48static db_configuration_t* configuration2 = NULL;
49static db_configuration_list_t* configuration_list = NULL;
50static db_connection_t* connection = NULL;
51static db_join_t* join = NULL;
52static db_join_t* join2 = NULL;
53static db_join_list_t* join_list = NULL;
54static db_object_field_t* object_field = NULL;
55static db_object_field_t* object_field2 = NULL;
56static db_object_field_list_t* object_field_list = NULL;
57static db_object_t* object = NULL;
58static db_value_set_t* value_set = NULL;
59static db_value_set_t* value_set2 = NULL;
60static db_result_t* result = NULL;
61static db_result_t* result2 = NULL;
62static db_result_list_t* result_list = NULL;
63static db_value_t* value = NULL;
64static db_value_t* value2 = NULL;
65static const db_enum_t enum_set[] = {
66 { "enum1", 1 },
67 { "enum2", 2 },
68 { "enum3", 3 },
69 { NULL, 0 }
70};
71
73 if (backend_handle) {
74 return 1;
75 }
76 if (backend) {
77 return 1;
78 }
79 if (clause) {
80 return 1;
81 }
82 if (clause2) {
83 return 1;
84 }
85 if (clause_list) {
86 return 1;
87 }
88 if (configuration) {
89 return 1;
90 }
91 if (configuration2) {
92 return 1;
93 }
94 if (configuration_list) {
95 return 1;
96 }
97 if (connection) {
98 return 1;
99 }
100 if (join) {
101 return 1;
102 }
103 if (join2) {
104 return 1;
105 }
106 if (join_list) {
107 return 1;
108 }
109 if (object_field) {
110 return 1;
111 }
112 if (object_field2) {
113 return 1;
114 }
115 if (object_field_list) {
116 return 1;
117 }
118 if (object) {
119 return 1;
120 }
121 if (value_set) {
122 return 1;
123 }
124 if (value_set2) {
125 return 1;
126 }
127 if (result) {
128 return 1;
129 }
130 if (result2) {
131 return 1;
132 }
133 if (result_list) {
134 return 1;
135 }
136 if (value) {
137 return 1;
138 }
139 if (value2) {
140 return 1;
141 }
142 return 0;
143}
144
146 db_backend_handle_free(backend_handle);
147 backend_handle = NULL;
148 db_backend_free(backend);
149 backend = NULL;
150 db_clause_free(clause);
151 clause = NULL;
152 db_clause_free(clause2);
153 clause2 = NULL;
154 db_clause_list_free(clause_list);
155 clause_list = NULL;
156 db_configuration_free(configuration);
157 configuration = NULL;
158 db_configuration_free(configuration2);
159 configuration2 = NULL;
160 db_configuration_list_free(configuration_list);
161 configuration_list = NULL;
162 db_connection_free(connection);
163 connection = NULL;
164 db_object_field_free(object_field);
165 object_field = NULL;
166 db_object_field_free(object_field2);
167 object_field2 = NULL;
168 db_object_field_list_free(object_field_list);
169 object_field_list = NULL;
170 db_object_free(object);
171 object = NULL;
172 db_value_set_free(value_set);
173 value_set = NULL;
174 db_value_set_free(value_set2);
175 value_set2 = NULL;
176 db_result_free(result);
177 result = NULL;
178 db_result_free(result2);
179 result2 = NULL;
180 db_result_list_free(result_list);
181 result_list = NULL;
182 db_value_free(value);
183 value = NULL;
184 db_value_free(value2);
185 value2 = NULL;
186 return 0;
187}
188
190 CU_ASSERT(data == &fake_pointer);
191 return 0;
192}
193
195 CU_ASSERT(data == &fake_pointer);
196 return 0;
197}
198
199int __db_backend_handle_connect(void* data, const db_configuration_list_t* configuration_list) {
200 CU_ASSERT(data == &fake_pointer);
201 CU_ASSERT((void*)configuration_list == &fake_pointer);
202 return 0;
203}
204
206 CU_ASSERT(data == &fake_pointer);
207 return 0;
208}
209
210int __db_backend_handle_create(void* data, const db_object_t* _object, const db_object_field_list_t* object_field_list, const db_value_set_t* value_set) {
211 CU_ASSERT(data == &fake_pointer);
212 CU_ASSERT((void*)_object == &fake_pointer || (object != NULL && _object == object));
213 CU_ASSERT((void*)object_field_list == &fake_pointer);
214 CU_ASSERT((void*)value_set == &fake_pointer);
215 return 0;
216}
217
218db_result_list_t* __db_backend_handle_read(void* data, const db_object_t* _object, const db_join_list_t* join_list, const db_clause_list_t* clause_list) {
219 CU_ASSERT(data == &fake_pointer);
220 CU_ASSERT((void*)_object == &fake_pointer || (object != NULL && _object == object));
221 CU_ASSERT((void*)join_list == &fake_pointer);
222 CU_ASSERT((void*)clause_list == &fake_pointer);
223 return (db_result_list_t*)&fake_pointer;
224}
225
226int __db_backend_handle_update(void* data, const db_object_t* _object, const db_object_field_list_t* object_field_list, const db_value_set_t* value_set, const db_clause_list_t* clause_list) {
227 CU_ASSERT(data == &fake_pointer);
228 CU_ASSERT((void*)_object == &fake_pointer || (object != NULL && _object == object));
229 CU_ASSERT((void*)object_field_list == &fake_pointer);
230 CU_ASSERT((void*)value_set == &fake_pointer);
231 CU_ASSERT((void*)clause_list == &fake_pointer);
232 return 0;
233}
234
235int __db_backend_handle_delete(void* data, const db_object_t* _object, const db_clause_list_t* clause_list) {
236 CU_ASSERT(data == &fake_pointer);
237 CU_ASSERT((void*)_object == &fake_pointer || (object != NULL && _object == object));
238 CU_ASSERT((void*)clause_list == &fake_pointer);
239 return 0;
240}
241
242int __db_backend_handle_count(void* data, const db_object_t* _object, const db_join_list_t* join_list, const db_clause_list_t* clause_list, size_t* count) {
243 CU_ASSERT(data == &fake_pointer);
244 CU_ASSERT((void*)_object == &fake_pointer || (object != NULL && _object == object));
245 CU_ASSERT((void*)join_list == &fake_pointer);
246 CU_ASSERT((void*)clause_list == &fake_pointer);
247 CU_ASSERT((void*)count == &fake_pointer);
248 return 0;
249}
250
251void __db_backend_handle_free(void* data) {
252 CU_ASSERT(data == &fake_pointer);
253}
254
256 CU_ASSERT(data == &fake_pointer);
257 return 0;
258}
259
261 CU_ASSERT(data == &fake_pointer);
262 return 0;
263}
264
266 CU_ASSERT(data == &fake_pointer);
267 return 0;
268}
269
271 CU_ASSERT_PTR_NOT_NULL_FATAL((backend_handle = db_backend_handle_new()));
272
277 CU_ASSERT(!db_backend_handle_set_create(backend_handle, __db_backend_handle_create));
278 CU_ASSERT(!db_backend_handle_set_read(backend_handle, __db_backend_handle_read));
279 CU_ASSERT(!db_backend_handle_set_update(backend_handle, __db_backend_handle_update));
280 CU_ASSERT(!db_backend_handle_set_delete(backend_handle, __db_backend_handle_delete));
281 CU_ASSERT(!db_backend_handle_set_count(backend_handle, __db_backend_handle_count));
282 CU_ASSERT(!db_backend_handle_set_free(backend_handle, __db_backend_handle_free));
286 CU_ASSERT(!db_backend_handle_set_data(backend_handle, &fake_pointer));
287
288 CU_ASSERT(!db_backend_handle_connect(backend_handle, (db_configuration_list_t*)&fake_pointer));
289 CU_ASSERT(!db_backend_handle_create(backend_handle, (db_object_t*)&fake_pointer, (db_object_field_list_t*)&fake_pointer, (db_value_set_t*)&fake_pointer));
290 CU_ASSERT(db_backend_handle_read(backend_handle, (db_object_t*)&fake_pointer, (db_join_list_t*)&fake_pointer, (db_clause_list_t*)&fake_pointer) == (db_result_list_t*)&fake_pointer);
291 CU_ASSERT(!db_backend_handle_update(backend_handle, (db_object_t*)&fake_pointer, (db_object_field_list_t*)&fake_pointer, (db_value_set_t*)&fake_pointer, (db_clause_list_t*)&fake_pointer));
292 CU_ASSERT(!db_backend_handle_delete(backend_handle, (db_object_t*)&fake_pointer, (db_clause_list_t*)&fake_pointer));
293 CU_ASSERT(!db_backend_handle_count(backend_handle, (db_object_t*)&fake_pointer, (db_join_list_t*)&fake_pointer, (db_clause_list_t*)&fake_pointer, (size_t*)&fake_pointer));
294}
295
297 CU_ASSERT_PTR_NOT_NULL_FATAL((backend = db_backend_new()));
298 CU_ASSERT(!db_backend_set_name(backend, "test"));
299 CU_ASSERT_FATAL(!db_backend_set_handle(backend, backend_handle));
300 backend_handle = NULL;
301
302 CU_ASSERT(!db_backend_initialize(backend));
303 CU_ASSERT(!db_backend_connect(backend, (db_configuration_list_t*)&fake_pointer));
304 CU_ASSERT(!db_backend_create(backend, (db_object_t*)&fake_pointer, (db_object_field_list_t*)&fake_pointer, (db_value_set_t*)&fake_pointer));
305 CU_ASSERT(db_backend_read(backend, (db_object_t*)&fake_pointer, (db_join_list_t*)&fake_pointer, (db_clause_list_t*)&fake_pointer) == (db_result_list_t*)&fake_pointer);
306 CU_ASSERT(!db_backend_update(backend, (db_object_t*)&fake_pointer, (db_object_field_list_t*)&fake_pointer, (db_value_set_t*)&fake_pointer, (db_clause_list_t*)&fake_pointer));
307 CU_ASSERT(!db_backend_delete(backend, (db_object_t*)&fake_pointer, (db_clause_list_t*)&fake_pointer));
308 CU_ASSERT(!db_backend_count(backend, (db_object_t*)&fake_pointer, (db_join_list_t*)&fake_pointer, (db_clause_list_t*)&fake_pointer, (size_t*)&fake_pointer));
309}
310
312 CU_ASSERT_PTR_NOT_NULL_FATAL((clause = db_clause_new()));
313
314 CU_ASSERT(!db_clause_set_field(clause, "field"));
315 CU_ASSERT(!db_clause_set_type(clause, DB_CLAUSE_NOT_EQUAL));
317 CU_ASSERT_PTR_NOT_NULL_FATAL(db_clause_get_value(clause));
318 CU_ASSERT(!db_value_from_int32(db_clause_get_value(clause), 1));
319 CU_ASSERT(!db_clause_not_empty(clause));
320
321 CU_ASSERT_PTR_NOT_NULL_FATAL(db_clause_field(clause));
322 CU_ASSERT(!strcmp(db_clause_field(clause), "field"));
323 CU_ASSERT(db_clause_type(clause) == DB_CLAUSE_NOT_EQUAL);
324 CU_ASSERT(db_clause_operator(clause) == DB_CLAUSE_OPERATOR_OR);
325 CU_ASSERT_PTR_NOT_NULL(db_clause_value(clause));
326 CU_ASSERT_PTR_NULL(db_clause_next(clause));
327}
328
330 db_clause_t* local_clause = clause;
331 const db_clause_t* clause_walk;
332
333 CU_ASSERT_PTR_NOT_NULL_FATAL((clause_list = db_clause_list_new()));
334
335 CU_ASSERT_FATAL(!db_clause_list_add(clause_list, clause));
336 clause = NULL;
337
338 CU_ASSERT((clause_walk = db_clause_list_begin(clause_list)) == local_clause);
339
340 db_clause_list_free(clause_list);
341 clause_list = NULL;
342 CU_PASS("db_clause_list_free");
343 CU_PASS("db_clause_free");
344}
345
347 CU_ASSERT_PTR_NOT_NULL_FATAL((configuration = db_configuration_new()));
348 CU_ASSERT(!db_configuration_set_name(configuration, "name1"));
349 CU_ASSERT(!db_configuration_set_value(configuration, "value1"));
350 CU_ASSERT(!db_configuration_not_empty(configuration));
351 CU_ASSERT_PTR_NOT_NULL_FATAL(db_configuration_value(configuration));
352 CU_ASSERT(!strcmp(db_configuration_value(configuration), "value1"));
353
354 CU_ASSERT_PTR_NOT_NULL_FATAL((configuration2 = db_configuration_new()));
355 CU_ASSERT(!db_configuration_set_name(configuration2, "name2"));
356 CU_ASSERT(!db_configuration_set_value(configuration2, "value2"));
357 CU_ASSERT(!db_configuration_not_empty(configuration2));
358 CU_ASSERT_PTR_NOT_NULL_FATAL(db_configuration_value(configuration2));
359 CU_ASSERT(!strcmp(db_configuration_value(configuration2), "value2"));
360}
361
363 db_configuration_t* local_configuration = configuration;
364 db_configuration_t* local_configuration2 = configuration2;
365
366 CU_ASSERT_PTR_NOT_NULL_FATAL((configuration_list = db_configuration_list_new()));
367
368 CU_ASSERT_FATAL(!db_configuration_list_add(configuration_list, configuration));
369 configuration = NULL;
370 CU_ASSERT_FATAL(!db_configuration_list_add(configuration_list, configuration2));
371 configuration2 = NULL;
372
373 CU_ASSERT(db_configuration_list_find(configuration_list, "name1") == local_configuration);
374 CU_ASSERT(db_configuration_list_find(configuration_list, "name2") == local_configuration2);
375
376 db_configuration_list_free(configuration_list);
377 configuration_list = NULL;
378 CU_PASS("db_configuration_list_free");
379 CU_PASS("db_configuration_free");
380}
381
383 CU_ASSERT_PTR_NOT_NULL_FATAL((connection = db_connection_new()));
384
385 CU_ASSERT_FATAL(!db_connection_set_configuration_list(connection, (db_configuration_list_t*)&fake_pointer));
386
387 connection->backend = backend;
388 backend = NULL;
389
390 CU_ASSERT_FATAL(!db_connection_setup(connection));
391 CU_ASSERT(!db_connection_connect(connection));
392 CU_ASSERT(!db_connection_create(connection, (db_object_t*)&fake_pointer, (db_object_field_list_t*)&fake_pointer, (db_value_set_t*)&fake_pointer));
393 CU_ASSERT(db_connection_read(connection, (db_object_t*)&fake_pointer, (db_join_list_t*)&fake_pointer, (db_clause_list_t*)&fake_pointer) == (db_result_list_t*)&fake_pointer);
394 CU_ASSERT(!db_connection_update(connection, (db_object_t*)&fake_pointer, (db_object_field_list_t*)&fake_pointer, (db_value_set_t*)&fake_pointer, (db_clause_list_t*)&fake_pointer));
395 CU_ASSERT(!db_connection_delete(connection, (db_object_t*)&fake_pointer, (db_clause_list_t*)&fake_pointer));
396 CU_ASSERT(!db_connection_count(connection, (db_object_t*)&fake_pointer, (db_join_list_t*)&fake_pointer, (db_clause_list_t*)&fake_pointer, (size_t*)&fake_pointer));
397}
398
400 CU_ASSERT_PTR_NOT_NULL_FATAL((object_field = db_object_field_new()));
401 CU_ASSERT(!db_object_field_set_name(object_field, "field1"));
402 CU_ASSERT(!db_object_field_set_type(object_field, DB_TYPE_INT32));
403 CU_ASSERT(!db_object_field_not_empty(object_field));
404 CU_ASSERT_PTR_NOT_NULL_FATAL(db_object_field_name(object_field));
405 CU_ASSERT(!strcmp(db_object_field_name(object_field), "field1"));
406 CU_ASSERT(db_object_field_type(object_field) == DB_TYPE_INT32);
407
408 CU_ASSERT_PTR_NOT_NULL_FATAL((object_field2 = db_object_field_new()));
409 CU_ASSERT(!db_object_field_set_name(object_field2, "field2"));
410 CU_ASSERT(!db_object_field_set_type(object_field2, DB_TYPE_ENUM));
411 CU_ASSERT(!db_object_field_set_enum_set(object_field2, (db_enum_t*)&fake_pointer));
412 CU_ASSERT(!db_object_field_not_empty(object_field2));
413 CU_ASSERT_PTR_NOT_NULL_FATAL(db_object_field_name(object_field2));
414 CU_ASSERT(!strcmp(db_object_field_name(object_field2), "field2"));
415 CU_ASSERT(db_object_field_type(object_field2) == DB_TYPE_ENUM);
416}
417
419 db_object_field_t* local_object_field = object_field;
420 db_object_field_t* local_object_field2 = object_field2;
421 const db_object_field_t* object_field_walk;
422
423 CU_ASSERT_PTR_NOT_NULL_FATAL((object_field_list = db_object_field_list_new()));
424
425 CU_ASSERT_FATAL(!db_object_field_list_add(object_field_list, object_field));
426 object_field = NULL;
427 CU_ASSERT_FATAL(!db_object_field_list_add(object_field_list, object_field2));
428 object_field2 = NULL;
429
430 CU_ASSERT((object_field_walk = db_object_field_list_begin(object_field_list)) == local_object_field);
431 CU_ASSERT(db_object_field_next(object_field_walk) == local_object_field2);
432}
433
435 db_object_field_list_t* local_object_field_list = object_field_list;
436
437 CU_ASSERT_PTR_NOT_NULL_FATAL((object = db_object_new()));
438
439 CU_ASSERT(!db_object_set_connection(object, connection));
440 CU_ASSERT(!db_object_set_table(object, "table"));
441 CU_ASSERT(!db_object_set_primary_key_name(object, "primary_key"));
442 CU_ASSERT(!db_object_set_object_field_list(object, object_field_list));
443 object_field_list = NULL;
444
445 CU_ASSERT(db_object_connection(object) == connection);
446 CU_ASSERT_PTR_NOT_NULL_FATAL(db_object_table(object));
447 CU_ASSERT(!strcmp(db_object_table(object), "table"));
448 CU_ASSERT(db_object_object_field_list(object) == local_object_field_list);
449
450 CU_ASSERT(!db_object_create(object, (db_object_field_list_t*)&fake_pointer, (db_value_set_t*)&fake_pointer));
451 CU_ASSERT(db_object_read(object, (db_join_list_t*)&fake_pointer, (db_clause_list_t*)&fake_pointer) == (db_result_list_t*)&fake_pointer);
452 CU_ASSERT(!db_object_update(object, (db_object_field_list_t*)&fake_pointer, (db_value_set_t*)&fake_pointer, (db_clause_list_t*)&fake_pointer));
453 CU_ASSERT(!db_object_delete(object, (db_clause_list_t*)&fake_pointer));
454 CU_ASSERT(!db_object_count(object, (db_join_list_t*)&fake_pointer, (db_clause_list_t*)&fake_pointer, (size_t*)&fake_pointer));
455
456 db_object_free(object);
457 object = NULL;
458 CU_PASS("db_object_free");
459}
460
462 CU_ASSERT_PTR_NOT_NULL_FATAL((value_set = db_value_set_new(2)));
463 CU_ASSERT(db_value_set_size(value_set) == 2);
464 CU_ASSERT_PTR_NOT_NULL(db_value_set_at(value_set, 0));
465 CU_ASSERT_PTR_NOT_NULL(db_value_set_at(value_set, 1));
466 CU_ASSERT_PTR_NULL(db_value_set_at(value_set, 2));
467 CU_ASSERT_PTR_NOT_NULL(db_value_set_get(value_set, 0));
468 CU_ASSERT_PTR_NOT_NULL(db_value_set_get(value_set, 1));
469 CU_ASSERT_PTR_NULL(db_value_set_get(value_set, 2));
470
471 CU_ASSERT_PTR_NOT_NULL_FATAL((value_set2 = db_value_set_new(6)));
472 CU_ASSERT(db_value_set_size(value_set2) == 6);
473 CU_ASSERT_PTR_NOT_NULL(db_value_set_at(value_set2, 0));
474 CU_ASSERT_PTR_NOT_NULL(db_value_set_at(value_set2, 1));
475 CU_ASSERT_PTR_NOT_NULL(db_value_set_at(value_set2, 2));
476 CU_ASSERT_PTR_NOT_NULL(db_value_set_at(value_set2, 3));
477 CU_ASSERT_PTR_NOT_NULL(db_value_set_at(value_set2, 4));
478 CU_ASSERT_PTR_NOT_NULL(db_value_set_at(value_set2, 5));
479 CU_ASSERT_PTR_NULL(db_value_set_at(value_set2, 6));
480 CU_ASSERT_PTR_NOT_NULL(db_value_set_get(value_set2, 0));
481 CU_ASSERT_PTR_NOT_NULL(db_value_set_get(value_set2, 1));
482 CU_ASSERT_PTR_NOT_NULL(db_value_set_get(value_set2, 2));
483 CU_ASSERT_PTR_NOT_NULL(db_value_set_get(value_set2, 3));
484 CU_ASSERT_PTR_NOT_NULL(db_value_set_get(value_set2, 4));
485 CU_ASSERT_PTR_NOT_NULL(db_value_set_get(value_set2, 5));
486 CU_ASSERT_PTR_NULL(db_value_set_get(value_set2, 6));
487}
488
490 db_value_set_t* local_value_set = value_set;
491 db_value_set_t* local_value_set2 = value_set2;
492
493 CU_ASSERT_PTR_NOT_NULL_FATAL((result = db_result_new()));
494 CU_ASSERT(!db_result_set_value_set(result, value_set));
495 value_set = NULL;
496 CU_ASSERT(db_result_value_set(result) == local_value_set);
497
498 CU_ASSERT_PTR_NOT_NULL_FATAL((result2 = db_result_new()));
499 CU_ASSERT(!db_result_set_value_set(result2, value_set2));
500 value_set2 = NULL;
501 CU_ASSERT(db_result_value_set(result2) == local_value_set2);
502 CU_ASSERT(!db_result_not_empty(result2));
503}
504
505static int __db_result_list_next_count = 0;
506db_result_t* __db_result_list_next(void* data, int finish) {
507 db_value_set_t* value_set;
508 db_result_t* result;
509
510 CU_ASSERT_FATAL(data == &fake_pointer);
511
512 if (finish) {
513 return NULL;
514 }
515
516 if (__db_result_list_next_count > 2) {
517 return NULL;
518 }
519
520 CU_ASSERT_PTR_NOT_NULL_FATAL((value_set = db_value_set_new(2)));
521 CU_ASSERT(db_value_set_size(value_set) == 2);
522 CU_ASSERT_PTR_NOT_NULL(db_value_set_at(value_set, 0));
523 CU_ASSERT_PTR_NOT_NULL(db_value_set_at(value_set, 1));
524 CU_ASSERT_PTR_NULL(db_value_set_at(value_set, 2));
525 CU_ASSERT_PTR_NOT_NULL(db_value_set_get(value_set, 0));
526 CU_ASSERT_PTR_NOT_NULL(db_value_set_get(value_set, 1));
527 CU_ASSERT_PTR_NULL(db_value_set_get(value_set, 2));
528
529 CU_ASSERT_PTR_NOT_NULL_FATAL((result = db_result_new()));
530 CU_ASSERT(!db_result_set_value_set(result, value_set));
531 CU_ASSERT(!db_result_not_empty(result));
532
533 __db_result_list_next_count++;
534
535 return result;
536}
537
539 db_result_t* local_result = result;
540 db_result_t* local_result2 = result2;
541
542 CU_ASSERT_PTR_NOT_NULL_FATAL((result_list = db_result_list_new()));
543
544 CU_ASSERT_FATAL(!db_result_list_add(result_list, result));
545 result = NULL;
546 CU_ASSERT_FATAL(!db_result_list_add(result_list, result2));
547 result2 = NULL;
548
549 CU_ASSERT(db_result_list_size(result_list) == 2);
550 CU_ASSERT(db_result_list_begin(result_list) == local_result);
551 CU_ASSERT(db_result_list_next(result_list) == local_result2);
552
553 db_result_list_free(result_list);
554 result_list = NULL;
555 CU_PASS("db_result_list_free");
556 CU_PASS("db_result_free");
557
558 CU_ASSERT_PTR_NOT_NULL_FATAL((result_list = db_result_list_new()));
559
560 CU_ASSERT_FATAL(!db_result_list_set_next(result_list, __db_result_list_next, &fake_pointer, 2));
561
562 CU_ASSERT(db_result_list_size(result_list) == 2);
563 CU_ASSERT_PTR_NOT_NULL(db_result_list_begin(result_list));
564 CU_ASSERT_PTR_NOT_NULL(db_result_list_next(result_list));
565
566 db_result_list_free(result_list);
567 result_list = NULL;
568 CU_PASS("db_result_list_free");
569 CU_PASS("db_result_free");
570}
571
573 char* text = NULL;
574 int ret;
575 db_type_int32_t int32;
576 db_type_uint32_t uint32;
577 db_type_int64_t int64;
578 db_type_uint64_t uint64;
579 CU_ASSERT_PTR_NOT_NULL_FATAL((value2 = db_value_new()));
580
581 CU_ASSERT_PTR_NOT_NULL_FATAL((value = db_value_new()));
582 CU_ASSERT(!db_value_from_text(value, "test"));
583 CU_ASSERT(db_value_type(value) == DB_TYPE_TEXT);
584 CU_ASSERT_PTR_NOT_NULL_FATAL(db_value_text(value));
585 CU_ASSERT(!strcmp(db_value_text(value), "test"));
586 CU_ASSERT(!db_value_to_text(value, &text));
587 CU_ASSERT_PTR_NOT_NULL(text);
588 free(text);
589 text = NULL;
590 CU_ASSERT(!db_value_not_empty(value));
591 CU_ASSERT(!db_value_copy(value2, value));
592 CU_ASSERT(db_value_type(value2) == DB_TYPE_TEXT);
593 CU_ASSERT_PTR_NOT_NULL_FATAL(db_value_text(value2));
594 CU_ASSERT(!strcmp(db_value_text(value2), "test"));
595 CU_ASSERT(!db_value_cmp(value, value2, &ret));
596 CU_ASSERT(!ret);
597 CU_ASSERT(!db_value_set_primary_key(value));
598
599 db_value_reset(value);
600 CU_PASS("db_value_reset");
601
602 CU_ASSERT(!db_value_from_int32(value, -12345));
603 CU_ASSERT(db_value_type(value) == DB_TYPE_INT32);
604 CU_ASSERT(!db_value_to_int32(value, &int32));
605 CU_ASSERT(int32 == -12345);
606 CU_ASSERT(!db_value_not_empty(value));
607 db_value_reset(value2);
608 CU_PASS("db_value_reset");
609 CU_ASSERT(!db_value_copy(value2, value));
610 CU_ASSERT(db_value_type(value2) == DB_TYPE_INT32);
611 CU_ASSERT(!db_value_to_int32(value2, &int32));
612 CU_ASSERT(int32 == -12345);
613 CU_ASSERT(!db_value_cmp(value, value2, &ret));
614 CU_ASSERT(!ret);
615 CU_ASSERT(!db_value_set_primary_key(value));
616
617 db_value_reset(value);
618 CU_PASS("db_value_reset");
619
620 CU_ASSERT(!db_value_from_uint32(value, 12345));
621 CU_ASSERT(db_value_type(value) == DB_TYPE_UINT32);
622 CU_ASSERT(!db_value_to_uint32(value, &uint32));
623 CU_ASSERT(uint32 == 12345);
624 CU_ASSERT(!db_value_not_empty(value));
625 db_value_reset(value2);
626 CU_PASS("db_value_reset");
627 CU_ASSERT(!db_value_copy(value2, value));
628 CU_ASSERT(db_value_type(value2) == DB_TYPE_UINT32);
629 CU_ASSERT(!db_value_to_uint32(value2, &uint32));
630 CU_ASSERT(uint32 == 12345);
631 CU_ASSERT(!db_value_cmp(value, value2, &ret));
632 CU_ASSERT(!ret);
633 CU_ASSERT(!db_value_set_primary_key(value));
634
635 db_value_reset(value);
636 CU_PASS("db_value_reset");
637
638 CU_ASSERT(!db_value_from_int64(value, -9223372036854775800));
639 CU_ASSERT(db_value_type(value) == DB_TYPE_INT64);
640 CU_ASSERT(!db_value_to_int64(value, &int64));
641 CU_ASSERT(int64 == -9223372036854775800);
642 CU_ASSERT(!db_value_not_empty(value));
643 db_value_reset(value2);
644 CU_PASS("db_value_reset");
645 CU_ASSERT(!db_value_copy(value2, value));
646 CU_ASSERT(db_value_type(value2) == DB_TYPE_INT64);
647 CU_ASSERT(!db_value_to_int64(value2, &int64));
648 CU_ASSERT(int64 == -9223372036854775800);
649 CU_ASSERT(!db_value_cmp(value, value2, &ret));
650 CU_ASSERT(!ret);
651 CU_ASSERT(!db_value_set_primary_key(value));
652
653 db_value_reset(value);
654 CU_PASS("db_value_reset");
655
656
657 CU_ASSERT(!db_value_from_uint64(value, 17446744073709551615UL));
658 CU_ASSERT(db_value_type(value) == DB_TYPE_UINT64);
659 CU_ASSERT(!db_value_to_uint64(value, &uint64));
660 CU_ASSERT(uint64 == 17446744073709551615UL);
661 CU_ASSERT(!db_value_not_empty(value));
662 db_value_reset(value2);
663 CU_PASS("db_value_reset");
664 CU_ASSERT(!db_value_copy(value2, value));
665 CU_ASSERT(db_value_type(value2) == DB_TYPE_UINT64);
666 CU_ASSERT(!db_value_to_uint64(value2, &uint64));
667 CU_ASSERT(uint64 == 17446744073709551615UL);
668 CU_ASSERT(!db_value_cmp(value, value2, &ret));
669 CU_ASSERT(!ret);
670 CU_ASSERT(!db_value_set_primary_key(value));
671
672 db_value_reset(value);
673 CU_PASS("db_value_reset");
674
675 CU_ASSERT(!db_value_from_enum_value(value, 2, enum_set));
676 CU_ASSERT(db_value_type(value) == DB_TYPE_ENUM);
677 CU_ASSERT(!db_value_enum_value(value, &ret));
678 CU_ASSERT(ret == 2);
679 CU_ASSERT(!db_value_to_enum_value(value, &ret, enum_set));
680 CU_ASSERT(ret == 2);
681 CU_ASSERT(!db_value_not_empty(value));
682 db_value_reset(value2);
683 CU_PASS("db_value_reset");
684 CU_ASSERT(!db_value_copy(value2, value));
685 CU_ASSERT(db_value_type(value2) == DB_TYPE_ENUM);
686 CU_ASSERT(!db_value_enum_value(value2, &ret));
687 CU_ASSERT(ret == 2);
688 CU_ASSERT(!db_value_to_enum_value(value2, &ret, enum_set));
689 CU_ASSERT(ret == 2);
690 CU_ASSERT(!db_value_cmp(value, value2, &ret));
691 CU_ASSERT(!ret);
692 CU_ASSERT(db_value_set_primary_key(value));
693
694 db_value_reset(value);
695 CU_PASS("db_value_reset");
696
697 db_value_free(value);
698 value = NULL;
699 CU_PASS("db_value_free");
700 db_value_free(value2);
701 value2 = NULL;
702 CU_PASS("db_value_free");
703}
704
705void test_class_end(void) {
706 db_result_free(result);
707 result = NULL;
708 db_result_free(result2);
709 result2 = NULL;
710 CU_PASS("db_result_free");
711
712 db_value_set_free(value_set);
713 value_set = NULL;
714 db_value_set_free(value_set2);
715 value_set2 = NULL;
716 CU_PASS("db_value_set_free");
717
718 db_object_field_list_free(object_field_list);
719 object_field_list = NULL;
720 CU_PASS("db_object_field_list_free");
721 CU_PASS("db_object_field_free");
722
723 db_connection_free(connection);
724 connection = NULL;
725 CU_PASS("db_connection_free");
726
727 db_backend_free(backend);
728 backend = NULL;
729 CU_PASS("db_backend_handle_free");
730 CU_PASS("db_backend_free");
731}
int db_backend_update(const db_backend_t *backend, const db_object_t *object, const db_object_field_list_t *object_field_list, const db_value_set_t *value_set, const db_clause_list_t *clause_list)
Definition: db_backend.c:419
int db_backend_handle_set_count(db_backend_handle_t *backend_handle, db_backend_handle_count_t count_function)
Definition: db_backend.c:250
int db_backend_handle_set_update(db_backend_handle_t *backend_handle, db_backend_handle_update_t update_function)
Definition: db_backend.c:232
int db_backend_handle_update(const db_backend_handle_t *backend_handle, const db_object_t *object, const db_object_field_list_t *object_field_list, const db_value_set_t *value_set, const db_clause_list_t *clause_list)
Definition: db_backend.c:127
db_backend_handle_t * db_backend_handle_new(void)
Definition: db_backend.c:49
int db_backend_handle_count(const db_backend_handle_t *backend_handle, const db_object_t *object, const db_join_list_t *join_list, const db_clause_list_t *clause_list, size_t *count)
Definition: db_backend.c:161
int db_backend_set_name(db_backend_t *backend, const char *name)
Definition: db_backend.c:330
int db_backend_handle_set_shutdown(db_backend_handle_t *backend_handle, db_backend_handle_shutdown_t shutdown_function)
Definition: db_backend.c:187
int db_backend_handle_set_initialize(db_backend_handle_t *backend_handle, db_backend_handle_initialize_t initialize_function)
Definition: db_backend.c:178
void db_backend_handle_free(db_backend_handle_t *backend_handle)
Definition: db_backend.c:56
void db_backend_free(db_backend_t *backend)
Definition: db_backend.c:318
int db_backend_handle_set_disconnect(db_backend_handle_t *backend_handle, db_backend_handle_disconnect_t disconnect_function)
Definition: db_backend.c:205
int db_backend_handle_set_delete(db_backend_handle_t *backend_handle, db_backend_handle_delete_t delete_function)
Definition: db_backend.c:241
db_result_list_t * db_backend_handle_read(const db_backend_handle_t *backend_handle, const db_object_t *object, const db_join_list_t *join_list, const db_clause_list_t *clause_list)
Definition: db_backend.c:113
int db_backend_handle_create(const db_backend_handle_t *backend_handle, const db_object_t *object, const db_object_field_list_t *object_field_list, const db_value_set_t *value_set)
Definition: db_backend.c:93
int db_backend_handle_set_transaction_rollback(db_backend_handle_t *backend_handle, db_backend_handle_transaction_rollback_t transaction_rollback_function)
Definition: db_backend.c:286
db_result_list_t * db_backend_read(const db_backend_t *backend, const db_object_t *object, const db_join_list_t *join_list, const db_clause_list_t *clause_list)
Definition: db_backend.c:405
int db_backend_create(const db_backend_t *backend, const db_object_t *object, const db_object_field_list_t *object_field_list, const db_value_set_t *value_set)
Definition: db_backend.c:385
db_backend_t * db_backend_new(void)
Definition: db_backend.c:311
int db_backend_handle_connect(const db_backend_handle_t *backend_handle, const db_configuration_list_t *configuration_list)
Definition: db_backend.c:79
int db_backend_handle_delete(const db_backend_handle_t *backend_handle, const db_object_t *object, const db_clause_list_t *clause_list)
Definition: db_backend.c:147
int db_backend_handle_set_transaction_commit(db_backend_handle_t *backend_handle, db_backend_handle_transaction_commit_t transaction_commit_function)
Definition: db_backend.c:277
int db_backend_initialize(const db_backend_t *backend)
Definition: db_backend.c:360
int db_backend_handle_set_transaction_begin(db_backend_handle_t *backend_handle, db_backend_handle_transaction_begin_t transaction_begin_function)
Definition: db_backend.c:268
int db_backend_handle_set_read(db_backend_handle_t *backend_handle, db_backend_handle_read_t read_function)
Definition: db_backend.c:223
int db_backend_set_handle(db_backend_t *backend, db_backend_handle_t *handle)
Definition: db_backend.c:348
int db_backend_handle_set_create(db_backend_handle_t *backend_handle, db_backend_handle_create_t create_function)
Definition: db_backend.c:214
int db_backend_delete(const db_backend_t *backend, const db_object_t *object, const db_clause_list_t *clause_list)
Definition: db_backend.c:439
int db_backend_count(const db_backend_t *backend, const db_object_t *object, const db_join_list_t *join_list, const db_clause_list_t *clause_list, size_t *count)
Definition: db_backend.c:453
int db_backend_handle_set_data(db_backend_handle_t *backend_handle, void *data)
Definition: db_backend.c:295
int db_backend_connect(const db_backend_t *backend, const db_configuration_list_t *configuration_list)
Definition: db_backend.c:371
int db_backend_handle_set_free(db_backend_handle_t *backend_handle, db_backend_handle_free_t free_function)
Definition: db_backend.c:259
int db_backend_handle_set_connect(db_backend_handle_t *backend_handle, db_backend_handle_connect_t connect_function)
Definition: db_backend.c:196
db_clause_operator_t db_clause_operator(const db_clause_t *clause)
Definition: db_clause.c:93
const db_value_t * db_clause_value(const db_clause_t *clause)
Definition: db_clause.c:85
void db_clause_free(db_clause_t *clause)
Definition: db_clause.c:56
db_clause_type_t db_clause_type(const db_clause_t *clause)
Definition: db_clause.c:77
db_clause_list_t * db_clause_list_new(void)
Definition: db_clause.c:202
db_clause_t * db_clause_new(void)
Definition: db_clause.c:43
const db_clause_t * db_clause_next(const db_clause_t *clause)
Definition: db_clause.c:179
db_value_t * db_clause_get_value(db_clause_t *clause)
Definition: db_clause.c:187
const char * db_clause_field(const db_clause_t *clause)
Definition: db_clause.c:69
int db_clause_list_add(db_clause_list_t *clause_list, db_clause_t *clause)
Definition: db_clause.c:226
void db_clause_list_free(db_clause_list_t *clause_list)
Definition: db_clause.c:209
int db_clause_set_operator(db_clause_t *clause, db_clause_operator_t clause_operator)
Definition: db_clause.c:142
int db_clause_set_field(db_clause_t *clause, const char *field)
Definition: db_clause.c:109
const db_clause_t * db_clause_list_begin(const db_clause_list_t *clause_list)
Definition: db_clause.c:255
int db_clause_not_empty(const db_clause_t *clause)
Definition: db_clause.c:154
int db_clause_set_type(db_clause_t *clause, db_clause_type_t type)
Definition: db_clause.c:130
@ DB_CLAUSE_OPERATOR_OR
Definition: db_clause.h:101
@ DB_CLAUSE_NOT_EQUAL
Definition: db_clause.h:48
const char * db_configuration_value(const db_configuration_t *configuration)
db_configuration_t * db_configuration_new(void)
const db_configuration_t * db_configuration_list_find(const db_configuration_list_t *configuration_list, const char *name)
db_configuration_list_t * db_configuration_list_new(void)
void db_configuration_free(db_configuration_t *configuration)
int db_configuration_not_empty(const db_configuration_t *configuration)
int db_configuration_set_name(db_configuration_t *configuration, const char *name)
int db_configuration_list_add(db_configuration_list_t *configuration_list, db_configuration_t *configuration)
int db_configuration_set_value(db_configuration_t *configuration, const char *value)
void db_configuration_list_free(db_configuration_list_t *configuration_list)
int db_connection_create(const db_connection_t *connection, const db_object_t *object, const db_object_field_list_t *object_field_list, const db_value_set_t *value_set)
int db_connection_connect(const db_connection_t *connection)
Definition: db_connection.c:88
db_connection_t * db_connection_new(void)
Definition: db_connection.c:38
int db_connection_setup(db_connection_t *connection)
Definition: db_connection.c:66
int db_connection_delete(const db_connection_t *connection, const db_object_t *object, const db_clause_list_t *clause_list)
void db_connection_free(db_connection_t *connection)
Definition: db_connection.c:45
int db_connection_set_configuration_list(db_connection_t *connection, const db_configuration_list_t *configuration_list)
Definition: db_connection.c:54
db_result_list_t * db_connection_read(const db_connection_t *connection, const db_object_t *object, const db_join_list_t *join_list, const db_clause_list_t *clause_list)
int db_connection_update(const db_connection_t *connection, const db_object_t *object, const db_object_field_list_t *object_field_list, const db_value_set_t *value_set, const db_clause_list_t *clause_list)
int db_connection_count(const db_connection_t *connection, const db_object_t *object, const db_join_list_t *join_list, const db_clause_list_t *clause_list, size_t *count)
const db_object_field_t * db_object_field_list_begin(const db_object_field_list_t *object_field_list)
Definition: db_object.c:284
db_type_t db_object_field_type(const db_object_field_t *object_field)
Definition: db_object.c:102
int db_object_field_not_empty(const db_object_field_t *object_field)
Definition: db_object.c:146
const db_connection_t * db_object_connection(const db_object_t *object)
Definition: db_object.c:320
db_object_field_t * db_object_field_new(void)
Definition: db_object.c:40
int db_object_update(const db_object_t *object, const db_object_field_list_t *object_field_list, const db_value_set_t *value_set, const db_clause_list_t *clause_list)
Definition: db_object.c:441
int db_object_field_list_add(db_object_field_list_t *object_field_list, db_object_field_t *object_field)
Definition: db_object.c:254
db_object_t * db_object_new(void)
Definition: db_object.c:304
int db_object_set_table(db_object_t *object, const char *table)
Definition: db_object.c:356
int db_object_field_set_name(db_object_field_t *object_field, const char *name)
Definition: db_object.c:110
int db_object_set_connection(db_object_t *object, const db_connection_t *connection)
Definition: db_object.c:341
db_result_list_t * db_object_read(const db_object_t *object, const db_join_list_t *join_list, const db_clause_list_t *clause_list)
Definition: db_object.c:424
int db_object_field_set_type(db_object_field_t *object_field, db_type_t type)
Definition: db_object.c:122
const db_object_field_list_t * db_object_object_field_list(const db_object_t *object)
Definition: db_object.c:334
const char * db_object_table(const db_object_t *object)
Definition: db_object.c:327
int db_object_field_set_enum_set(db_object_field_t *object_field, const db_enum_t *enum_set)
Definition: db_object.c:134
void db_object_free(db_object_t *object)
Definition: db_object.c:311
db_object_field_list_t * db_object_field_list_new(void)
Definition: db_object.c:174
int db_object_set_object_field_list(db_object_t *object, db_object_field_list_t *object_field_list)
Definition: db_object.c:386
const char * db_object_field_name(const db_object_field_t *object_field)
Definition: db_object.c:94
void db_object_field_free(db_object_field_t *object_field)
Definition: db_object.c:69
int db_object_create(const db_object_t *object, const db_object_field_list_t *object_field_list, const db_value_set_t *value_set)
Definition: db_object.c:401
int db_object_delete(const db_object_t *object, const db_clause_list_t *clause_list)
Definition: db_object.c:464
void db_object_field_list_free(db_object_field_list_t *object_field_list)
Definition: db_object.c:199
int db_object_count(const db_object_t *object, const db_join_list_t *join_list, const db_clause_list_t *clause_list, size_t *count)
Definition: db_object.c:481
int db_object_set_primary_key_name(db_object_t *object, const char *primary_key_name)
Definition: db_object.c:371
const db_object_field_t * db_object_field_next(const db_object_field_t *object_field)
Definition: db_object.c:162
int db_result_not_empty(const db_result_t *result)
Definition: db_result.c:120
int db_result_list_add(db_result_list_t *result_list, db_result_t *result)
Definition: db_result.c:257
size_t db_result_list_size(const db_result_list_t *result_list)
Definition: db_result.c:333
int db_result_set_value_set(db_result_t *result, db_value_set_t *value_set)
Definition: db_result.c:105
db_result_list_t * db_result_list_new(void)
Definition: db_result.c:134
int db_result_list_set_next(db_result_list_t *result_list, db_result_list_next_t next_function, void *next_data, size_t size)
Definition: db_result.c:234
db_result_t * db_result_new(void)
Definition: db_result.c:38
const db_result_t * db_result_list_next(db_result_list_t *result_list)
Definition: db_result.c:310
void db_result_free(db_result_t *result)
Definition: db_result.c:63
const db_result_t * db_result_list_begin(db_result_list_t *result_list)
Definition: db_result.c:290
void db_result_list_free(db_result_list_t *result_list)
Definition: db_result.c:160
const db_value_set_t * db_result_value_set(const db_result_t *result)
Definition: db_result.c:97
@ DB_TYPE_INT64
Definition: db_type.h:74
@ DB_TYPE_UINT64
Definition: db_type.h:78
@ DB_TYPE_TEXT
Definition: db_type.h:82
@ DB_TYPE_INT32
Definition: db_type.h:66
@ DB_TYPE_ENUM
Definition: db_type.h:86
@ DB_TYPE_UINT32
Definition: db_type.h:70
uint64_t db_type_uint64_t
Definition: db_type.h:50
uint32_t db_type_uint32_t
Definition: db_type.h:42
int64_t db_type_int64_t
Definition: db_type.h:46
int32_t db_type_int32_t
Definition: db_type.h:38
int db_value_to_int32(const db_value_t *value, db_type_int32_t *to_int32)
Definition: db_value.c:357
db_type_t db_value_type(const db_value_t *value)
Definition: db_value.c:269
const db_value_t * db_value_set_at(const db_value_set_t *value_set, size_t at)
Definition: db_value.c:742
int db_value_set_primary_key(db_value_t *value)
Definition: db_value.c:595
int db_value_from_enum_value(db_value_t *value, int enum_value, const db_enum_t *enum_set)
Definition: db_value.c:572
db_value_t * db_value_set_get(db_value_set_t *value_set, size_t at)
Definition: db_value.c:756
void db_value_set_free(db_value_set_t *value_set)
Definition: db_value.c:697
int db_value_from_uint32(db_value_t *value, db_type_uint32_t from_uint32)
Definition: db_value.c:492
db_value_set_t * db_value_set_new(size_t size)
Definition: db_value.c:622
int db_value_to_int64(const db_value_t *value, db_type_int64_t *to_int64)
Definition: db_value.c:387
int db_value_from_text(db_value_t *value, const char *from_text)
Definition: db_value.c:531
int db_value_from_int32(db_value_t *value, db_type_int32_t from_int32)
Definition: db_value.c:479
int db_value_copy(db_value_t *value, const db_value_t *from_value)
Definition: db_value.c:77
int db_value_from_int64(db_value_t *value, db_type_int64_t from_int64)
Definition: db_value.c:505
int db_value_cmp(const db_value_t *value_a, const db_value_t *value_b, int *result)
Definition: db_value.c:102
size_t db_value_set_size(const db_value_set_t *value_set)
Definition: db_value.c:734
int db_value_to_uint32(const db_value_t *value, db_type_uint32_t *to_uint32)
Definition: db_value.c:372
db_value_t * db_value_new()
Definition: db_value.c:40
int db_value_to_text(const db_value_t *value, char **to_text)
Definition: db_value.c:417
void db_value_free(db_value_t *value)
Definition: db_value.c:51
int db_value_not_empty(const db_value_t *value)
Definition: db_value.c:347
int db_value_enum_value(const db_value_t *value, int *enum_value)
Definition: db_value.c:332
int db_value_to_uint64(const db_value_t *value, db_type_uint64_t *to_uint64)
Definition: db_value.c:402
int db_value_to_enum_value(const db_value_t *value, int *to_int, const db_enum_t *enum_set)
Definition: db_value.c:438
void db_value_reset(db_value_t *value)
Definition: db_value.c:60
int db_value_from_uint64(db_value_t *value, db_type_uint64_t from_uint64)
Definition: db_value.c:518
const char * db_value_text(const db_value_t *value)
Definition: db_value.c:321
db_backend_t * backend
Definition: db_connection.h:48
int __db_backend_handle_disconnect(void *data)
Definition: test_classes.c:205
void test_class_db_value_set(void)
Definition: test_classes.c:461
void test_class_db_object(void)
Definition: test_classes.c:434
int __db_backend_handle_transaction_rollback(void *data)
Definition: test_classes.c:265
int init_suite_classes(void)
Definition: test_classes.c:72
int __db_backend_handle_count(void *data, const db_object_t *_object, const db_join_list_t *join_list, const db_clause_list_t *clause_list, size_t *count)
Definition: test_classes.c:242
int __db_backend_handle_initialize(void *data)
Definition: test_classes.c:189
void test_class_db_value(void)
Definition: test_classes.c:572
void test_class_db_clause(void)
Definition: test_classes.c:311
void test_class_db_connection(void)
Definition: test_classes.c:382
int __db_backend_handle_delete(void *data, const db_object_t *_object, const db_clause_list_t *clause_list)
Definition: test_classes.c:235
void test_class_db_object_field_list(void)
Definition: test_classes.c:418
int __db_backend_handle_shutdown(void *data)
Definition: test_classes.c:194
db_result_list_t * __db_backend_handle_read(void *data, const db_object_t *_object, const db_join_list_t *join_list, const db_clause_list_t *clause_list)
Definition: test_classes.c:218
int __db_backend_handle_update(void *data, const db_object_t *_object, const db_object_field_list_t *object_field_list, const db_value_set_t *value_set, const db_clause_list_t *clause_list)
Definition: test_classes.c:226
int __db_backend_handle_create(void *data, const db_object_t *_object, const db_object_field_list_t *object_field_list, const db_value_set_t *value_set)
Definition: test_classes.c:210
void test_class_end(void)
Definition: test_classes.c:705
void __db_backend_handle_free(void *data)
Definition: test_classes.c:251
void test_class_db_object_field(void)
Definition: test_classes.c:399
int clean_suite_classes(void)
Definition: test_classes.c:145
int __db_backend_handle_connect(void *data, const db_configuration_list_t *configuration_list)
Definition: test_classes.c:199
void test_class_db_result_list(void)
Definition: test_classes.c:538
void test_class_db_backend(void)
Definition: test_classes.c:296
int __db_backend_handle_transaction_commit(void *data)
Definition: test_classes.c:260
void test_class_db_configuration(void)
Definition: test_classes.c:346
void test_class_db_clause_list(void)
Definition: test_classes.c:329
void test_class_db_configuration_list(void)
Definition: test_classes.c:362
int __db_backend_handle_transaction_begin(void *data)
Definition: test_classes.c:255
void test_class_db_backend_handle(void)
Definition: test_classes.c:270
void test_class_db_result(void)
Definition: test_classes.c:489
db_result_t * __db_result_list_next(void *data, int finish)
Definition: test_classes.c:506