1 #include <config.h>
2
3 #include <Transaction.h>
4 #include <Account.h>
5
6 #include "gmock-Split.h"
7 #include "gmock-qofbook.h"
8
9
10 struct _MockSplitClass
11 {
12 QofInstanceClass parent_class;
13 };
14 typedef struct _MockSplitClass MockSplitClass;
15
16 G_DEFINE_TYPE(MockSplit, gnc_mocksplit, QOF_TYPE_INSTANCE);
17
18 static void
gnc_mocksplit_init(MockSplit * inst)19 gnc_mocksplit_init (MockSplit *inst)
20 {
21 // function is unused, initialization is done in the MockSplit's C++ constructor
22 }
23
24 static void
gnc_mocksplit_class_init(MockSplitClass * klass)25 gnc_mocksplit_class_init (MockSplitClass *klass)
26 {
27 // function is unused, class functions are defined in C++ code
28 }
29
30
gnc_split_get_type(void)31 GType gnc_split_get_type(void)
32 {
33 return gnc_mocksplit_get_type();
34 }
35
36 Split *
xaccMallocSplit(QofBook * book)37 xaccMallocSplit (QofBook *book)
38 {
39 SCOPED_TRACE("");
40 QofMockBook* mockbook = qof_mockbook(book);
41 return mockbook ? mockbook->malloc_split() : nullptr;
42 }
43
44 QofBook *
xaccSplitGetBook(const Split * split)45 xaccSplitGetBook (const Split *split)
46 {
47 SCOPED_TRACE("");
48 auto mocksplit = gnc_mocksplit(split);
49 return mocksplit ? mocksplit->get_book() : nullptr;
50 }
51
52 Account *
xaccSplitGetAccount(const Split * split)53 xaccSplitGetAccount (const Split *split)
54 {
55 SCOPED_TRACE("");
56 auto mocksplit = gnc_mocksplit(split);
57 return mocksplit ? mocksplit->get_account() : nullptr;
58 }
59
60 void
xaccSplitSetAccount(Split * split,Account * acc)61 xaccSplitSetAccount (Split *split, Account *acc)
62 {
63 ASSERT_TRUE(GNC_IS_MOCKSPLIT(split));
64 ASSERT_TRUE(GNC_IS_ACCOUNT(acc));
65 gnc_mocksplit(split)->set_account(acc);
66 }
67
68 gnc_numeric
xaccSplitGetAmount(const Split * split)69 xaccSplitGetAmount (const Split *split)
70 {
71 SCOPED_TRACE("");
72 auto mocksplit = gnc_mocksplit(split);
73 return mocksplit ? mocksplit->get_amount() : gnc_numeric_zero();
74 }
75
76 void
xaccSplitSetAmount(Split * split,gnc_numeric amt)77 xaccSplitSetAmount (Split *split, gnc_numeric amt)
78 {
79 ASSERT_TRUE(GNC_IS_MOCKSPLIT(split));
80 gnc_mocksplit(split)->set_amount(amt);
81 }
82
83 gnc_numeric
xaccSplitGetValue(const Split * split)84 xaccSplitGetValue (const Split *split)
85 {
86 SCOPED_TRACE("");
87 auto mocksplit = gnc_mocksplit(split);
88 return mocksplit ? mocksplit->get_value() : gnc_numeric_zero();
89 }
90
91 void
xaccSplitSetValue(Split * split,gnc_numeric val)92 xaccSplitSetValue (Split *split, gnc_numeric val)
93 {
94 ASSERT_TRUE(GNC_IS_MOCKSPLIT(split));
95 gnc_mocksplit(split)->set_value(val);
96 }
97
98 const char *
xaccSplitGetMemo(const Split * split)99 xaccSplitGetMemo (const Split *split)
100 {
101 SCOPED_TRACE("");
102 auto mocksplit = gnc_mocksplit(split);
103 return mocksplit ? mocksplit->get_memo() : "";
104 }
105
106 char
xaccSplitGetReconcile(const Split * split)107 xaccSplitGetReconcile (const Split *split)
108 {
109 SCOPED_TRACE("");
110 auto mocksplit = gnc_mocksplit(split);
111 return mocksplit ? mocksplit->get_reconcile() : VREC;
112 }
113
114 void
xaccSplitSetReconcile(Split * split,char recn)115 xaccSplitSetReconcile (Split *split, char recn)
116 {
117 ASSERT_TRUE(GNC_IS_MOCKSPLIT(split));
118 gnc_mocksplit(split)->set_reconcile(recn);
119 }
120
121 void
xaccSplitSetDateReconciledSecs(Split * split,time64 secs)122 xaccSplitSetDateReconciledSecs (Split *split, time64 secs)
123 {
124 ASSERT_TRUE(GNC_IS_MOCKSPLIT(split));
125 gnc_mocksplit(split)->set_date_reconciled_secs(secs);
126 }
127
128 const char *
xaccSplitGetAction(const Split * split)129 xaccSplitGetAction (const Split *split)
130 {
131 SCOPED_TRACE("");
132 auto mocksplit = gnc_mocksplit(split);
133 return mocksplit ? mocksplit->get_action() : "";
134 }
135
136 Split *
xaccSplitGetOtherSplit(const Split * split)137 xaccSplitGetOtherSplit (const Split *split)
138 {
139 SCOPED_TRACE("");
140 auto mocksplit = gnc_mocksplit(split);
141 return mocksplit ? mocksplit->get_other_split() : nullptr;
142 }
143
144 Transaction *
xaccSplitGetParent(const Split * split)145 xaccSplitGetParent (const Split *split)
146 {
147 SCOPED_TRACE("");
148 auto mocksplit = gnc_mocksplit(split);
149 return mocksplit ? mocksplit->get_parent() : nullptr;
150 }
151
152 void
xaccSplitSetParent(Split * split,Transaction * trans)153 xaccSplitSetParent(Split *split, Transaction *trans)
154 {
155 ASSERT_TRUE(GNC_IS_MOCKSPLIT(split));
156 ASSERT_TRUE(GNC_IS_TRANSACTION(trans));
157 gnc_mocksplit(split)->set_parent(trans);
158 }
159