GnuCash  5.6-150-g038405b370+
gmock-Split.h
1 #ifndef GMOCK_SPLIT_H
2 #define GMOCK_SPLIT_H
3 
4 #include <gmock/gmock.h>
5 
6 #include <Split.h>
7 #include <SplitP.hpp>
8 
9 #include "gmock-qofbook.h"
10 #include "gmock-gobject.h"
11 
12 
13 GType gnc_mocksplit_get_type(void);
14 
15 #define GNC_TYPE_MOCKSPLIT (gnc_mocksplit_get_type ())
16 #define GNC_IS_MOCKSPLIT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_MOCKSPLIT))
17 
18 
19 // mock up for Split
20 class MockSplit : public Split
21 {
22 public:
23  MockSplit()
24  {
25  acc = nullptr;
26  orig_acc = nullptr;
27  parent = nullptr;
28  orig_parent = nullptr;
29  lot = nullptr;
30 
31  action = nullptr;
32  memo = nullptr;
33  reconciled = VREC;
34  amount = gnc_numeric_zero();
35  value = gnc_numeric_zero();
36 
37  date_reconciled = 0;
38 
39  balance = gnc_numeric_zero();
40  cleared_balance = gnc_numeric_zero();
41  reconciled_balance = gnc_numeric_zero();
42  noclosing_balance = gnc_numeric_zero();
43 
44  gains = GAINS_STATUS_UNKNOWN;
45  gains_split = nullptr;
46  }
47  void* operator new(size_t size)
48  {
49  return mock_g_object_new (GNC_TYPE_MOCKSPLIT, NULL, size);
50  }
51 
52  // define separate free() function since destructor is protected
53  void free()
54  {
55  delete this;
56  }
57  void operator delete(void* split, size_t size)
58  {
59  mock_g_object_unref(split, size);
60  }
61 
62  MOCK_METHOD0(init, void());
63  MOCK_CONST_METHOD0(get_book, QofBook *());
64  MOCK_CONST_METHOD0(get_account, Account *());
65  MOCK_METHOD1(set_account, void(Account*));
66  MOCK_CONST_METHOD0(get_amount, gnc_numeric());
67  MOCK_METHOD1(set_amount, void(gnc_numeric));
68  MOCK_CONST_METHOD0(get_value, gnc_numeric());
69  MOCK_METHOD1(set_value, void(gnc_numeric));
70  MOCK_CONST_METHOD0(get_memo, const char *());
71  MOCK_METHOD1(set_memo, void(const char *));
72  MOCK_CONST_METHOD0(get_reconcile, char());
73  MOCK_METHOD1(set_reconcile, void(char));
74  MOCK_METHOD1(set_date_reconciled_secs, void(time64));
75  MOCK_CONST_METHOD0(get_action, const char *());
76  MOCK_CONST_METHOD0(get_other_split, Split *());
77  MOCK_CONST_METHOD0(get_parent, Transaction *());
78  MOCK_METHOD1(set_parent, void(Transaction*));
79 
80 protected:
81  // Protect destructor to avoid MockSplit objects to be created on stack. MockSplit
82  // objects can only be dynamically created, since they are derived from GObject.
83  ~MockSplit() {}
84 };
85 
86 
87 // type conversion functions
88 static inline MockSplit*
89 gnc_mocksplit (Split *split)
90 {
91  if (GNC_IS_MOCKSPLIT(split))
92  return static_cast<MockSplit*>(split);
93  ADD_FAILURE() << "Expected 'split' to be of type 'MockSplit'";
94  return nullptr;
95 }
96 
97 static inline const MockSplit*
98 gnc_mocksplit (const Split *split)
99 {
100  if (GNC_IS_MOCKSPLIT(split))
101  return static_cast<const MockSplit*>(split);
102  ADD_FAILURE() << "Expected 'split' to be of type 'MockSplit'";
103  return nullptr;
104 }
105 
106 #endif
STRUCTS.
API for Transactions and Splits (journal entries)
#define VREC
split is void
Definition: Split.h:77
Definition: init.py:1
gint64 time64
Most systems that are currently maintained, including Microsoft Windows, BSD-derived Unixes and Linux...
Definition: gnc-date.h:87