GnuCash c935c2f+
Loading...
Searching...
No Matches
gmock-qofbook.hpp
1#ifndef GMOCK_QOFBOOK_H
2#define GMOCK_QOFBOOK_H
3
4#pragma GCC diagnostic push
5#pragma GCC diagnostic ignored "-Wcpp"
6#include <gmock/gmock.h>
7#pragma GCC diagnostic pop
8
9
10#include <qofbook.h>
11#include <qofbook-p.hpp>
12#include <Split.h>
13
14#include "gmock-gobject.h"
15
16
17GType qof_mockbook_get_type(void);
18
19#define QOF_TYPE_MOCKBOOK (qof_mockbook_get_type ())
20#define QOF_IS_MOCKBOOK(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), QOF_TYPE_MOCKBOOK))
21
22
23// mock up for QofBook
24class QofMockBook : public QofBook
25{
26public:
28 {
29 hash_of_collections = nullptr;
30 data_tables = nullptr;
31 data_table_finalizers = nullptr;
32
33 book_open = 'n';
34 read_only = TRUE;
35 session_dirty = FALSE;
36
37 version = 0;
38
39 cached_num_field_source_isvalid = FALSE;
40 cached_num_days_autoreadonly_isvalid = FALSE;
41 }
42 void* operator new(size_t size)
43 {
44 return mock_g_object_new (QOF_TYPE_MOCKBOOK, NULL, size);
45 }
46
47 // define separate free() function since destructor is protected
48 void free()
49 {
50 delete this;
51 }
52 void operator delete(void* book, size_t size)
53 {
54 mock_g_object_unref(book, size);
55 }
56
57 MOCK_METHOD0(malloc_split, Split *());
58 MOCK_CONST_METHOD0(use_split_action_for_num_field, gboolean());
59
60protected:
61 // Protect destructor to avoid MockQofBook objects to be created on stack. MockQofBook
62 // objects can only be dynamically created, since they are derived from GObject.
63 ~QofMockBook() {}
64};
65
66
67// type conversion functions
68static inline QofMockBook*
69qof_mockbook (QofBook *book)
70{
71 if (QOF_IS_MOCKBOOK(book))
72 return static_cast<QofMockBook*>(book);
73 ADD_FAILURE() << "Expected 'book' to be of type 'QofMockBook'";
74 return nullptr;
75}
76
77static inline const QofMockBook*
78qof_mockbook (const QofBook *book)
79{
80 if (QOF_IS_MOCKBOOK(book))
81 return static_cast<const QofMockBook*>(book);
82 ADD_FAILURE() << "Expected 'book' to be of type 'QofMockBook'";
83 return nullptr;
84}
85
86
87#endif
API for Transactions and Splits (journal entries)
Encapsulate all the information about a dataset.
QofBook reference.
Definition qofbook-p.hpp:47