28 #include "cashobjects.h"
32 #include "test-stuff.h"
35 #define print_gnc_numeric(num) fprintf(stderr, "%s\n", gnc_numeric_to_string(num))
62 char *reason =
"because I can";
66 acc1 = get_random_account(book);
67 acc2 = get_random_account(book);
71 failure(
"accounts not created");
76 transaction = get_random_transaction (book);
87 transaction_set_splits_to_accounts(transaction, acc1, acc2);
101 if ((ts.tv_sec < now) || ((ts.tv_sec - now) > 2))
103 failure(
"bad void time");
108 failure(
"void status reports false after setting void");
113 failure(
"Reasons didn't match");
121 failure(
"Amount of split0 not zero after voiding");
128 failure(
"Value of split1 not zero after voiding");
134 failure(
"former amount (after voiding) didn't match actual old amount");
139 failure(
"former value (after voiding) didn't match actual old value");
150 if ((ts.tv_sec != 0) || (ts.tv_sec != 0))
152 failure(
"void time not zero after restore");
157 failure(
"void status reports trus after restoring transaction");
162 failure(
"void reason exists after restoring transaction");
170 failure(
"Amount of split0 not correct after restoring transaction");
177 failure(
"Value of split1 not correct after restoring transaction");
183 failure(
"former amount (after restore) should be zero");
188 failure(
"former value (after restore) should be zero");
195 main (
int argc,
char **argv)
198 if (cashobjects_register())
202 success(
"transaction voiding seems OK");
203 print_test_results();
Split * xaccTransGetSplit(const Transaction *trans, int i)
const char * xaccTransGetVoidReason(const Transaction *trans)
void xaccLogDisable(void)
QofBook * qof_book_new(void)
Use a 64-bit unsigned int timespec.
gboolean gnc_numeric_zero_p(gnc_numeric a)
void xaccTransDestroy(Transaction *trans)
gnc_numeric xaccSplitVoidFormerAmount(const Split *split)
Account handling public routines.
gnc_numeric xaccSplitVoidFormerValue(const Split *split)
void xaccTransVoid(Transaction *trans, const char *reason)
void xaccTransCommitEdit(Transaction *trans)
void xaccTransBeginEdit(Transaction *trans)
void xaccTransUnvoid(Transaction *trans)
gboolean gnc_numeric_eq(gnc_numeric a, gnc_numeric b)
API for the transaction logger.
void qof_close(void)
Safely close down the Query Object Framework.
gboolean xaccTransGetVoidStatus(const Transaction *trans)
gnc_numeric xaccSplitGetValue(const Split *split)
Timespec xaccTransGetVoidTime(const Transaction *tr)
#define xaccAccountInsertSplit(acc, s)
time64 gnc_time(time64 *tbuf)
get the current local time
void qof_init(void)
Initialise the Query Object Framework.
API for Transactions and Splits (journal entries)
gnc_numeric xaccSplitGetAmount(const Split *split)