30 #include <qofinstance-p.h>
33 #include "gncInvoiceP.h"
34 #include "gncCustomerP.h"
36 #include "test-stuff.h"
41 test_string_fcn (
QofBook *book,
const char *message,
42 void (*set) (
GncJob *,
const char *str),
43 const char * (*
get)(
const GncJob *));
46 test_numeric_fcn (
QofBook *book,
const char *message,
51 test_bool_fcn (
QofBook *book,
const char *message,
52 void (*set) (
GncJob *, gboolean),
53 gboolean (*
get) (
const GncJob *));
57 test_gint_fcn (
QofBook *book,
const char *message,
58 void (*set) (
GncJob *, gint),
59 gint (*
get) (
const GncJob *));
72 do_test (gncJobCreate (NULL) == NULL,
"job create NULL");
73 job = gncJobCreate (book);
74 do_test (job != NULL,
"job create");
78 gncJobBeginEdit (job);
80 success (
"create/destroy");
87 test_string_fcn (book,
"Id", gncJobSetID, gncJobGetID);
88 test_string_fcn (book,
"Name", gncJobSetName, gncJobGetName);
89 test_string_fcn (book,
"Reference", gncJobSetReference, gncJobGetReference);
90 test_numeric_fcn (book,
"Rate", gncJobSetRate, gncJobGetRate);
92 test_bool_fcn (book,
"Active", gncJobSetActive, gncJobGetActive);
95 job = gncJobCreate (book);
97 gncJobSetGUID (job, &guid);
105 do_test (list != NULL,
"getList all");
106 do_test (g_list_length (list) == count,
"correct length: all");
110 do_test (list != NULL,
"getList active");
111 do_test (g_list_length (list) == 1,
"correct length: active");
116 const char *str = get_random_string();
119 gncJobSetName (job, str);
121 do_test (res != NULL,
"Printable NULL?");
122 do_test (g_strcmp0 (str, res) == 0,
"Printable equals");
129 gncOwnerInitCustomer (&owner, cust);
131 do_test (gncCustomerGetJoblist (cust, TRUE) == NULL,
"empty list at start");
132 gncJobSetOwner (job, &owner);
133 list = gncCustomerGetJoblist (cust, FALSE);
134 do_test (list != NULL,
"added to cust");
135 do_test (g_list_length (list) == 1,
"correct joblist length");
136 do_test (list->data == job,
"verify job in list");
137 gncJobSetActive (job, FALSE);
138 list = gncCustomerGetJoblist (cust, FALSE);
139 do_test (list == NULL,
"no active jobs");
140 list = gncCustomerGetJoblist (cust, TRUE);
141 do_test (list != NULL,
"all jobs");
142 gncJobBeginEdit (job);
144 list = gncCustomerGetJoblist (cust, TRUE);
145 do_test (list == NULL,
"no more jobs");
152 test_string_fcn (
QofBook *book,
const char *message,
153 void (*set) (
GncJob *,
const char *str),
154 const char * (*
get)(
const GncJob *))
156 GncJob *job = gncJobCreate (book);
157 char const *str = get_random_string ();
160 gncJobBeginEdit (job);
164 gncJobCommitEdit (job);
171 do_test (g_strcmp0 (
get (job), str) == 0, message);
172 gncJobSetActive (job, FALSE);
177 test_numeric_fcn (
QofBook *book,
const char *message,
181 GncJob *job = gncJobCreate (book);
185 gncJobBeginEdit (job);
189 gncJobCommitEdit (job);
197 gncJobSetActive (job, FALSE);
202 test_bool_fcn (
QofBook *book,
const char *message,
203 void (*set) (
GncJob *, gboolean),
204 gboolean (*
get) (
const GncJob *))
206 GncJob *job = gncJobCreate (book);
207 gboolean num = get_random_boolean ();
210 gncJobBeginEdit (job);
216 gncJobCommitEdit (job);
223 do_test (
get (job) == num, message);
224 gncJobSetActive (job, FALSE);
230 test_gint_fcn (
QofBook *book,
const char *message,
231 void (*set) (
GncJob *, gint),
232 gint (*
get) (
const GncJob *))
234 GncJob *job = gncJobCreate (book);
238 gncJobBeginEdit (job);
242 gncJobCommitEdit (job);
249 do_test (
get (job) == num, message);
250 gncJobSetActive (job, FALSE);
256 main (
int argc,
char **argv)
259 do_test (gncInvoiceRegister(),
"Cannot register GncInvoice");
260 do_test (gncJobRegister (),
"Cannot register GncJob");
261 do_test (gncCustomerRegister(),
"Cannot register GncCustomer");
263 print_test_results();
void guid_replace(GncGUID *guid)
gboolean gnc_numeric_equal(gnc_numeric a, gnc_numeric b)
Business Interface: Object OWNERs.
const GncGUID * qof_instance_get_guid(gconstpointer)
#define qof_instance_is_dirty
QofBook * qof_instance_get_book(gconstpointer)
QofBook * qof_book_new(void)
gboolean guid_equal(const GncGUID *guid_1, const GncGUID *guid_2)
void qof_close(void)
Safely close down the Query Object Framework.
GList * gncBusinessGetList(QofBook *book, QofIdTypeConst type_name, gboolean all_including_inactive)
const char * qof_object_printable(QofIdTypeConst type_name, gpointer instance)
void qof_init(void)
Initialise the Query Object Framework.
void qof_book_destroy(QofBook *book)