mirror of
https://github.com/Gnucash/gnucash.git
synced 2024-12-02 05:29:20 -06:00
75209c024f
When a transaction is added from the ledger, price database is updated properly. But if the transaction is imported, there is no price db update. This change adds the proper pricedb update in the import path (qfx/ofx/qif). Tested with make check
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();
|
|
}
|