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