32 #include "test-stuff.h"
35 #define TEST_MODULE_NAME "object_test"
36 #define TEST_MODULE_DESC "Test Object"
37 #define OBJ_AMOUNT "anamount"
59 g_return_val_if_fail (book, NULL);
60 d = g_new0 (dyn_obj, 1);
74 dyn_getAmount (dyn_obj * e)
81 static G_GNUC_UNUSED
const gchar *
82 test_dyn_printable (gpointer obj)
89 .e_type = TEST_MODULE_NAME,
90 .type_label = TEST_MODULE_DESC,
91 .create = (gpointer)dyn_create,
97 .printable = test_dyn_printable,
102 dyn_objRegister (
void)
105 {OBJ_AMOUNT, QOF_TYPE_NUMERIC, (
QofAccessFunc) dyn_getAmount,
113 {NULL, NULL, NULL, NULL, NULL},
122 dyn_foreach (
QofParam * param, gpointer user_data)
124 do_test (param != NULL,
"Fail");
128 dyn_foreach2 (
QofEntity * ent, gpointer user_data)
130 do_test (ent != NULL,
"Fail");
143 gchar * sql_str, * gstr, * test, * err, *rand_str;
149 do_test (inst != NULL,
"object new instance");
150 g_return_if_fail (inst);
152 rand_str = g_strescape (get_random_string (), NULL);
154 do_test (slots != NULL,
"creating some slots");
157 err = g_strdup_printf (
"compare slots: %s", test);
162 do_test (ent != NULL,
"convert to entity");
167 rand_dbl = get_random_double ();
171 test = g_strdup (
"CREATE TABLE object_test ( guid char(32) primary key not null, "
172 "anamount text, dbversion int ); CREATE TABLE sql_kvp (kvp_id int "
173 "primary key not null, guid char(32), path mediumtext, type mediumtext, "
174 "value text, dbversion int );");
176 g_strdup_printf (
"Create table SQL statement:%s:%s", sql_str, test));
185 test = g_strdup_printf (
"INSERT into object_test (guid , anamount) VALUES "
186 "('%s' , '%s'); INSERT into sql_kvp (kvp_id, guid, type, path, value) "
187 "VALUES ('%ld', '%s', 'string', '/debug/test/string', '%s');",
188 gstr, num_str, kvp_id, gstr, rand_str);
189 err = g_strdup_printf (
"Insert entity SQL statement:%s:%s", sql_str, test);
198 do_test (param != NULL,
"no OBJ_AMOUNT parameter");
200 do_test (sql_str != NULL,
"failed to mark instance as dirty");
201 test = g_strdup_printf (
"UPDATE object_test SET anamount = '%s' WHERE "
202 "guid='%s';", num_str, gstr);
203 err = g_strdup_printf (
"Update entity SQL statement: %s", sql_str);
210 test = g_strdup_printf (
"UPDATE sql_kvp SET type='string', value='%s' "
211 "WHERE path='/debug/test/string' and guid='%s';", rand_str, gstr);
212 err = g_strdup_printf (
"Update entity SQL statement: %s", sql_str);
221 test = g_strconcat (
"DELETE from object_test WHERE guid='", gstr,
"';",
222 "DELETE from sql_kvp WHERE kvp_id ='", gstr,
"';", NULL);
223 err = g_strdup_printf (
"DELETE entity SQL statement: %s", sql_str);
230 err = g_strdup_printf (
"DROP TABLE SQL statement: %s", sql_str);
231 do_test (0 ==
safe_strcasecmp (sql_str,
"DROP TABLE object_test;"), err);
244 do_test ((NULL != book),
"book null");
245 do_test (dyn_objRegister() == TRUE,
"register test object");
247 "lookup our installed object");
253 print_test_results ();