1 #include <config.h>
2
3 #include "gmock-Account.h"
4
5
6 struct _MockAccountClass
7 {
8 QofInstanceClass parent_class;
9 };
10 typedef struct _MockAccountClass MockAccountClass;
11
12 G_DEFINE_TYPE(MockAccount, gnc_mockaccount, QOF_TYPE_INSTANCE);
13
14 static void
gnc_mockaccount_init(MockAccount * inst)15 gnc_mockaccount_init (MockAccount *inst)
16 {
17 // function is unused, initialization is done in the MockAccount's C++ constructor
18 }
19
20 static void
gnc_mockaccount_class_init(MockAccountClass * klass)21 gnc_mockaccount_class_init(MockAccountClass *klass)
22 {
23 // function is unused, class functions are defined in C++ code
24 }
25
26
gnc_account_get_type(void)27 GType gnc_account_get_type(void)
28 {
29 return gnc_mockaccount_get_type();
30 }
31
32 void
xaccAccountBeginEdit(Account * account)33 xaccAccountBeginEdit (Account *account)
34 {
35 ASSERT_TRUE(GNC_IS_MOCKACCOUNT(account));
36 gnc_mockaccount(account)->begin_edit();
37 }
38
39 void
xaccAccountCommitEdit(Account * account)40 xaccAccountCommitEdit (Account *account)
41 {
42 ASSERT_TRUE(GNC_IS_MOCKACCOUNT(account));
43 gnc_mockaccount(account)->commit_edit();
44 }
45
46 QofBook *
gnc_account_get_book(const Account * account)47 gnc_account_get_book(const Account *account)
48 {
49 SCOPED_TRACE("");
50 auto mockaccount = gnc_mockaccount(account);
51 return mockaccount ? mockaccount->get_book() : nullptr;
52 }
53
54 gint
xaccAccountForEachTransaction(const Account * acc,TransactionCallback proc,void * data)55 xaccAccountForEachTransaction(const Account *acc, TransactionCallback proc,
56 void *data)
57 {
58 SCOPED_TRACE("");
59 auto mockaccount = gnc_mockaccount(acc);
60 return mockaccount ? mockaccount->for_each_transaction(proc, data) : 0;
61 }
62
63 SplitList *
xaccAccountGetSplitList(const Account * account)64 xaccAccountGetSplitList (const Account *account)
65 {
66 SCOPED_TRACE("");
67 auto mockaccount = gnc_mockaccount(account);
68 return mockaccount ? mockaccount->xaccAccountGetSplitList() : nullptr;
69 }
70
71
72 GncImportMatchMap *
gnc_account_imap_create_imap(Account * acc)73 gnc_account_imap_create_imap (Account *acc)
74 {
75 SCOPED_TRACE("");
76 auto mockaccount = gnc_mockaccount(acc);
77 return mockaccount ? mockaccount->create_imap() : nullptr;
78 }
79
80 Account*
gnc_account_imap_find_account(GncImportMatchMap * imap,const char * category,const char * key)81 gnc_account_imap_find_account (
82 GncImportMatchMap *imap,
83 const char* category,
84 const char *key)
85 {
86 return ((GncMockImportMatchMap*)imap)->find_account(category, key);
87 }
88
89 void
gnc_account_imap_add_account(GncImportMatchMap * imap,const char * category,const char * key,Account * acc)90 gnc_account_imap_add_account (
91 GncImportMatchMap *imap,
92 const char *category,
93 const char *key,
94 Account *acc)
95 {
96 ((GncMockImportMatchMap*)imap)->add_account(category, key, acc);
97 }
98
99 Account*
gnc_account_imap_find_account_bayes(GncImportMatchMap * imap,GList * tokens)100 gnc_account_imap_find_account_bayes (
101 GncImportMatchMap *imap,
102 GList *tokens)
103 {
104 std::vector<const char*> tokenVec;
105
106 for (auto token = tokens; token; token = token->next)
107 {
108 tokenVec.push_back(static_cast <char const *> (token->data));
109 }
110
111 return ((GncMockImportMatchMap*)imap)->find_account_bayes(tokenVec);
112 }
113
114 void
gnc_account_imap_add_account_bayes(GncImportMatchMap * imap,GList * tokens,Account * acc)115 gnc_account_imap_add_account_bayes (
116 GncImportMatchMap *imap,
117 GList *tokens,
118 Account *acc)
119 {
120 std::vector<const char*> tokenVec;
121
122 for (auto token = tokens; token; token = token->next)
123 {
124 tokenVec.push_back(static_cast <char const *> (token->data));
125 }
126
127 ((GncMockImportMatchMap*)imap)->add_account_bayes(tokenVec, acc);
128 }
129
130