mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-20 11:48:30 -06:00
154 lines
3.5 KiB
C++
154 lines
3.5 KiB
C++
#include <config.h>
|
|
|
|
#include <Account.h>
|
|
|
|
#include "gmock-Transaction.h"
|
|
|
|
|
|
struct _MockTransactionClass
|
|
{
|
|
QofInstanceClass parent_class;
|
|
};
|
|
typedef struct _MockTransactionClass MockTransactionClass;
|
|
|
|
G_DEFINE_TYPE(MockTransaction, gnc_mocktransaction, QOF_TYPE_INSTANCE)
|
|
|
|
static void
|
|
gnc_mocktransaction_init (MockTransaction *inst)
|
|
{
|
|
// function is unused, initialization is done in the MockTransaction's C++ constructor
|
|
}
|
|
|
|
static void
|
|
gnc_mocktransaction_class_init(MockTransactionClass *klass)
|
|
{
|
|
// function is unused, class functions are defined in C++ code
|
|
}
|
|
|
|
|
|
GType gnc_transaction_get_type(void)
|
|
{
|
|
return gnc_mocktransaction_get_type();
|
|
}
|
|
|
|
void
|
|
xaccTransBeginEdit (Transaction *trans)
|
|
{
|
|
ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
|
|
gnc_mocktransaction(trans)->begin_edit();
|
|
}
|
|
|
|
void
|
|
xaccTransCommitEdit (Transaction *trans)
|
|
{
|
|
ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
|
|
gnc_mocktransaction(trans)->commit_edit();
|
|
}
|
|
|
|
Split *
|
|
xaccTransGetSplit (const Transaction *trans, int i)
|
|
{
|
|
SCOPED_TRACE("");
|
|
auto mocktrans = gnc_mocktransaction(trans);
|
|
return mocktrans ? mocktrans->get_split(i) : nullptr;
|
|
}
|
|
|
|
SplitList *
|
|
xaccTransGetSplitList (const Transaction *trans)
|
|
{
|
|
g_return_val_if_fail(GNC_IS_MOCKTRANSACTION(trans), NULL);
|
|
return trans ? ((MockTransaction*)trans)->get_split_list() : NULL;
|
|
}
|
|
|
|
Split *
|
|
xaccTransFindSplitByAccount(const Transaction *trans, const Account *acc)
|
|
{
|
|
SCOPED_TRACE("");
|
|
auto mocktrans = gnc_mocktransaction(trans);
|
|
EXPECT_TRUE(GNC_IS_ACCOUNT(acc));
|
|
return mocktrans ? mocktrans->find_split_by_account(acc) : nullptr;
|
|
}
|
|
|
|
time64
|
|
xaccTransGetDate (const Transaction *trans)
|
|
{
|
|
SCOPED_TRACE("");
|
|
auto mocktrans = gnc_mocktransaction(trans);
|
|
return mocktrans ? mocktrans->get_date() : 0;
|
|
}
|
|
|
|
void
|
|
xaccTransSetDatePostedSecsNormalized (Transaction *trans, time64 time)
|
|
{
|
|
ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
|
|
gnc_mocktransaction(trans)->set_date_posted_secs_normalized(time);
|
|
}
|
|
|
|
const char *
|
|
xaccTransGetDescription (const Transaction *trans)
|
|
{
|
|
SCOPED_TRACE("");
|
|
auto mocktrans = gnc_mocktransaction(trans);
|
|
return mocktrans ? mocktrans->get_description() : "";
|
|
}
|
|
|
|
void
|
|
xaccTransSetDescription (Transaction *trans, const char *desc)
|
|
{
|
|
ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
|
|
gnc_mocktransaction(trans)->set_description(desc);
|
|
}
|
|
|
|
const char *
|
|
xaccTransGetNotes (const Transaction *trans)
|
|
{
|
|
SCOPED_TRACE("");
|
|
auto mocktrans = gnc_mocktransaction(trans);
|
|
return mocktrans ? mocktrans->get_notes() : "";
|
|
}
|
|
|
|
void
|
|
xaccTransSetNotes (Transaction *trans, const char *notes)
|
|
{
|
|
ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
|
|
gnc_mocktransaction(trans)->set_notes(notes);
|
|
}
|
|
|
|
gnc_numeric
|
|
xaccTransGetImbalanceValue (const Transaction * trans)
|
|
{
|
|
SCOPED_TRACE("");
|
|
auto mocktrans = gnc_mocktransaction(trans);
|
|
return mocktrans ? mocktrans->get_imbalance_value() : gnc_numeric_zero();
|
|
}
|
|
|
|
const char *
|
|
xaccTransGetNum (const Transaction *trans)
|
|
{
|
|
SCOPED_TRACE("");
|
|
auto mocktrans = gnc_mocktransaction(trans);
|
|
return mocktrans ? mocktrans->get_num() : "";
|
|
}
|
|
|
|
gboolean
|
|
xaccTransIsOpen (const Transaction *trans)
|
|
{
|
|
SCOPED_TRACE("");
|
|
auto mocktrans = gnc_mocktransaction(trans);
|
|
return mocktrans ? mocktrans->is_open() : FALSE;
|
|
}
|
|
|
|
void
|
|
xaccTransDestroy (Transaction *trans)
|
|
{
|
|
ASSERT_TRUE(GNC_IS_MOCKTRANSACTION(trans));
|
|
gnc_mocktransaction(trans)->destroy();
|
|
}
|
|
|
|
void
|
|
xaccTransRecordPrice (Transaction *trans, PriceSource source)
|
|
{
|
|
g_return_if_fail(GNC_IS_MOCKTRANSACTION(trans));
|
|
((MockTransaction*)trans)->recordPrice();
|
|
}
|