gnucash maint: Multiple changes pushed
Robert Fewell
bobit at code.gnucash.org
Thu Jan 12 09:38:48 EST 2023
Updated via https://github.com/Gnucash/gnucash/commit/6df866f8 (commit)
via https://github.com/Gnucash/gnucash/commit/fd37ee99 (commit)
from https://github.com/Gnucash/gnucash/commit/ce3d47f1 (commit)
commit 6df866f8769269ecab27889fa535a1341e8898c9
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Thu Jan 12 14:34:30 2023 +0000
Add tests for the reconcile account functions
diff --git a/libgnucash/engine/test/utest-Account.cpp b/libgnucash/engine/test/utest-Account.cpp
index 093bc60a9..fb792148c 100644
--- a/libgnucash/engine/test/utest-Account.cpp
+++ b/libgnucash/engine/test/utest-Account.cpp
@@ -1089,6 +1089,11 @@ test_gnc_account_kvp_setters_getters (Fixture *fixture, gconstpointer pData)
{
Account *account = xaccMallocAccount (gnc_account_get_book (fixture->acct));
xaccAccountSetType (account, ACCT_TYPE_EQUITY);
+ gnc_numeric post_balance = gnc_numeric_create (2345, 100);
+ gnc_numeric returned_post_balance;
+ time64 date = gnc_time (nullptr);
+ time64 returned_date;
+ int prev_months, prev_days;
// equity_type getter/setter
g_assert (xaccAccountGetIsOpeningBalance (account) == FALSE);
@@ -1231,6 +1236,35 @@ test_gnc_account_kvp_setters_getters (Fixture *fixture, gconstpointer pData)
xaccAccountSetNotes (account, nullptr);
g_assert_cmpstr (xaccAccountGetNotes (account), ==, nullptr);
+ // Reconcile getter/setter
+ date = date - (60*60*24*7); // -7 days
+ xaccAccountSetReconcileLastDate (account, date);
+ xaccAccountGetReconcileLastDate (account, &returned_date);
+ g_assert (date == returned_date);
+
+ date = date + (60*60*24*2); // +2 days
+ xaccAccountSetReconcilePostponeDate (account, date);
+ xaccAccountGetReconcilePostponeDate (account, &returned_date);
+ g_assert (date == returned_date);
+
+ g_assert (xaccAccountGetReconcilePostponeBalance (account, &returned_post_balance) == false);
+ xaccAccountSetReconcilePostponeBalance (account, post_balance);
+ g_assert (xaccAccountGetReconcilePostponeBalance (account, &returned_post_balance) == true);
+ g_assert_cmpint (gnc_numeric_compare (post_balance, returned_post_balance), ==, 0);
+
+ xaccAccountClearReconcilePostpone (account);
+ g_assert (xaccAccountGetReconcilePostponeBalance (account, &returned_post_balance) == false);
+
+ g_assert (xaccAccountGetReconcileLastInterval (account, &prev_months, &prev_days) == false);
+ xaccAccountSetReconcileLastInterval (account, 2, 6);
+ g_assert (xaccAccountGetReconcileLastInterval (account, &prev_months, &prev_days) == true);
+ g_assert (prev_months == 2);
+ g_assert (prev_days == 6);
+
+ g_assert (xaccAccountGetReconcileChildrenStatus (account) == false); //default
+ xaccAccountSetReconcileChildrenStatus (account, true);
+ g_assert (xaccAccountGetReconcileChildrenStatus (account) == true);
+
// STOCK_ACCOUNT tests from now on
xaccAccountSetType (account, ACCT_TYPE_STOCK);
@@ -2555,26 +2589,7 @@ test_xaccAccountType_Compatibility (void)
g_assert_cmpint (check2->hits, ==, 1);
g_free (msg2);
}
-/* More KVP getters & setters
- * xaccAccountGetReconcileLastDate
- * xaccAccountSetReconcileLastDate
- * xaccAccountGetReconcilePostponeDate
- * xaccAccountSetReconcilePostponeDate
- * xaccAccountGetReconcilePostponeBalance
- * xaccAccountSetReconcilePostponeBalance
- * xaccAccountClearReconcilePostpone
- * xaccAccountGetAutoInterestXfer
- * xaccAccountSetAutoInterestXfer
- * xaccAccountGetLastNum
- * xaccAccountSetLastNum
- * xaccAccountSetReconcileChildrenStatus
- * xaccAccountGetReconcileChildrenStatus
- * xaccAccountGetReconcileLastInterval
- * xaccAccountSetReconcileLastInterval
- * dxaccAccountSetPriceSrc
- * dxaccAccountSetQuoteTZ
- * dxaccAccountGetQuoteTZ
- */
+
/* finder_help_function
static void
finder_help_function (const Account *acc, const char *description,// 3
commit fd37ee997d7cef61db82cdd226ca8cac31f4be75
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Thu Jan 12 14:32:14 2023 +0000
Fix getting xaccAccountGetReconcilePostponeBalance
Change the G_VALUE from a INT64 to BOXED.
diff --git a/libgnucash/engine/Account.cpp b/libgnucash/engine/Account.cpp
index c9fe32b7a..81a5ea1f7 100644
--- a/libgnucash/engine/Account.cpp
+++ b/libgnucash/engine/Account.cpp
@@ -4878,7 +4878,7 @@ xaccAccountGetReconcilePostponeBalance (const Account *acc,
g_return_val_if_fail(GNC_IS_ACCOUNT(acc), FALSE);
qof_instance_get_path_kvp (QOF_INSTANCE(acc), &v,
{KEY_RECONCILE_INFO, KEY_POSTPONE, "balance"});
- if (G_VALUE_HOLDS_INT64 (&v))
+ if (G_VALUE_HOLDS_BOXED (&v))
{
bal = *(gnc_numeric*)g_value_get_boxed (&v);
if (bal.denom)
Summary of changes:
libgnucash/engine/Account.cpp | 2 +-
libgnucash/engine/test/utest-Account.cpp | 55 ++++++++++++++++++++------------
2 files changed, 36 insertions(+), 21 deletions(-)
More information about the gnucash-changes
mailing list