1 #include <config.h>
2
3 #include <Account.h>
4
5 #include "gmock-Transaction.h"
6
7
8 struct _MockTransactionClass
9 {
10 QofInstanceClass parent_class;
11 };
12 typedef struct _MockTransactionClass MockTransactionClass;
13
14 G_DEFINE_TYPE(MockTransaction, gnc_mocktransaction, QOF_TYPE_INSTANCE);
15
16 static void
gnc_mocktransaction_init(MockTransaction * inst)17 gnc_mocktransaction_init (MockTransaction *inst)
18 {
19 // function is unused, initialization is done in the MockTransaction's C++ constructor
20 }
21
22 static void
gnc_mocktransaction_class_init(MockTransactionClass * klass)23 gnc_mocktransaction_class_init(MockTransactionClass *klass)
24 {
25 // function is unused, class functions are defined in C++ code
26 }
27
28
gnc_transaction_get_type(void)29 GType gnc_transaction_get_type(void)
30 {
31 return gnc_mocktransaction_get_type();
32 }
33
34 void
xaccTransBeginEdit(Transaction * trans)35 xaccTransBeginEdit (Transaction *trans)
36 {
37 ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
38 gnc_mocktransaction(trans)->begin_edit();
39 }
40
41 void
xaccTransCommitEdit(Transaction * trans)42 xaccTransCommitEdit (Transaction *trans)
43 {
44 ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
45 gnc_mocktransaction(trans)->commit_edit();
46 }
47
48 Split *
xaccTransGetSplit(const Transaction * trans,int i)49 xaccTransGetSplit (const Transaction *trans, int i)
50 {
51 SCOPED_TRACE("");
52 auto mocktrans = gnc_mocktransaction(trans);
53 return mocktrans ? mocktrans->get_split(i) : nullptr;
54 }
55
56 SplitList *
xaccTransGetSplitList(const Transaction * trans)57 xaccTransGetSplitList (const Transaction *trans)
58 {
59 g_return_val_if_fail(GNC_IS_MOCKTRANSACTION(trans), NULL);
60 return trans ? ((MockTransaction*)trans)->get_split_list() : NULL;
61 }
62
63 Split *
xaccTransFindSplitByAccount(const Transaction * trans,const Account * acc)64 xaccTransFindSplitByAccount(const Transaction *trans, const Account *acc)
65 {
66 SCOPED_TRACE("");
67 auto mocktrans = gnc_mocktransaction(trans);
68 EXPECT_TRUE(GNC_IS_ACCOUNT(acc));
69 return mocktrans ? mocktrans->find_split_by_account(acc) : nullptr;
70 }
71
72 time64
xaccTransGetDate(const Transaction * trans)73 xaccTransGetDate (const Transaction *trans)
74 {
75 SCOPED_TRACE("");
76 auto mocktrans = gnc_mocktransaction(trans);
77 return mocktrans ? mocktrans->get_date() : 0;
78 }
79
80 void
xaccTransSetDatePostedSecsNormalized(Transaction * trans,time64 time)81 xaccTransSetDatePostedSecsNormalized (Transaction *trans, time64 time)
82 {
83 ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
84 gnc_mocktransaction(trans)->set_date_posted_secs_normalized(time);
85 }
86
87 const char *
xaccTransGetDescription(const Transaction * trans)88 xaccTransGetDescription (const Transaction *trans)
89 {
90 SCOPED_TRACE("");
91 auto mocktrans = gnc_mocktransaction(trans);
92 return mocktrans ? mocktrans->get_description() : "";
93 }
94
95 void
xaccTransSetDescription(Transaction * trans,const char * desc)96 xaccTransSetDescription (Transaction *trans, const char *desc)
97 {
98 ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
99 gnc_mocktransaction(trans)->set_description(desc);
100 }
101
102 const char *
xaccTransGetNotes(const Transaction * trans)103 xaccTransGetNotes (const Transaction *trans)
104 {
105 SCOPED_TRACE("");
106 auto mocktrans = gnc_mocktransaction(trans);
107 return mocktrans ? mocktrans->get_notes() : "";
108 }
109
110 void
xaccTransSetNotes(Transaction * trans,const char * notes)111 xaccTransSetNotes (Transaction *trans, const char *notes)
112 {
113 ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
114 gnc_mocktransaction(trans)->set_notes(notes);
115 }
116
117 gnc_numeric
xaccTransGetImbalanceValue(const Transaction * trans)118 xaccTransGetImbalanceValue (const Transaction * trans)
119 {
120 SCOPED_TRACE("");
121 auto mocktrans = gnc_mocktransaction(trans);
122 return mocktrans ? mocktrans->get_imbalance_value() : gnc_numeric_zero();
123 }
124
125 const char *
xaccTransGetNum(const Transaction * trans)126 xaccTransGetNum (const Transaction *trans)
127 {
128 SCOPED_TRACE("");
129 auto mocktrans = gnc_mocktransaction(trans);
130 return mocktrans ? mocktrans->get_num() : "";
131 }
132
133 gboolean
xaccTransIsOpen(const Transaction * trans)134 xaccTransIsOpen (const Transaction *trans)
135 {
136 SCOPED_TRACE("");
137 auto mocktrans = gnc_mocktransaction(trans);
138 return mocktrans ? mocktrans->is_open() : FALSE;
139 }
140
141 void
xaccTransDestroy(Transaction * trans)142 xaccTransDestroy (Transaction *trans)
143 {
144 ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
145 gnc_mocktransaction(trans)->destroy();
146 }
147
148 void
xaccTransRecordPrice(Transaction * trans,PriceSource source)149 xaccTransRecordPrice (Transaction *trans, PriceSource source)
150 {
151 g_return_if_fail(GNC_IS_MOCKTRANSACTION(trans));
152 ((MockTransaction*)trans)->recordPrice();
153 }
154