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