gnucash stable: [utest-gnc-pricedb.c] tests gnc_pricedb_price_list_insert
Christopher Lam
clam at code.gnucash.org
Wed Aug 2 11:22:58 EDT 2023
Updated via https://github.com/Gnucash/gnucash/commit/d6b49bbc (commit)
from https://github.com/Gnucash/gnucash/commit/231b1f2b (commit)
commit d6b49bbc89e899feb66ff1bafbcf6179c720b029
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Wed Aug 2 23:15:32 2023 +0800
[utest-gnc-pricedb.c] tests gnc_pricedb_price_list_insert
especially skipping adding duplicate price
diff --git a/libgnucash/engine/test/utest-gnc-pricedb.c b/libgnucash/engine/test/utest-gnc-pricedb.c
index 735ee6a43c..4ac3de9cec 100644
--- a/libgnucash/engine/test/utest-gnc-pricedb.c
+++ b/libgnucash/engine/test/utest-gnc-pricedb.c
@@ -362,10 +362,6 @@ test_price_list_is_duplicate (Fixture *fixture, gconstpointer pData)
gboolean
gnc_price_list_insert(PriceList **prices, GNCPrice *p, gboolean check_dupl)// Local: 3:0:0
*/
-/* static void
-test_gnc_price_list_insert (Fixture *fixture, gconstpointer pData)
-{
-}*/
/* gnc_price_list_remove
gboolean
gnc_price_list_remove(PriceList **prices, GNCPrice *p)// Local: 1:0:0
@@ -682,6 +678,37 @@ guint
gnc_pricedb_get_num_prices(GNCPriceDB *db)// C: 2 in 1 Local: 0:0:0
*/
+static void
+test_gnc_price_list_insert (PriceDBFixture *fixture, gconstpointer pData)
+{
+ GNCPriceDB *db = fixture->pricedb;
+ Commodities *c = fixture->com;
+ QofBook *book = qof_instance_get_book(QOF_INSTANCE(db));
+
+ g_assert_cmpint (gnc_pricedb_get_num_prices(fixture->pricedb), ==, 42);
+
+ // nop because 12/4/09 already exists
+ gnc_pricedb_add_price (db, construct_price(book, c->usd, c->aud,
+ gnc_dmy2time64(12, 4, 2009),
+ PRICE_SOURCE_USER_PRICE,
+ gnc_numeric_create(131190, 10000)));
+ g_assert_cmpint (gnc_pricedb_get_num_prices(fixture->pricedb), ==, 42);
+
+ // num_prices increases because because 14/4/09 doesn't exist yet
+ gnc_pricedb_add_price (db, construct_price(book, c->usd, c->aud,
+ gnc_dmy2time64(14, 4, 2009),
+ PRICE_SOURCE_USER_PRICE,
+ gnc_numeric_create(131190, 10000)));
+ g_assert_cmpint (gnc_pricedb_get_num_prices(fixture->pricedb), ==, 43);
+
+ // nop because because 14/4/09 already exists
+ gnc_pricedb_add_price (db, construct_price(book, c->usd, c->aud,
+ gnc_dmy2time64(14, 4, 2009),
+ PRICE_SOURCE_USER_PRICE,
+ gnc_numeric_create(131190, 10000)));
+ g_assert_cmpint (gnc_pricedb_get_num_prices(fixture->pricedb), ==, 43);
+}
+
static void
test_gnc_price_list_equal (PriceDBFixture *fixture, gconstpointer pData)
{
@@ -1672,7 +1699,7 @@ test_suite_gnc_pricedb (void)
// GNC_TEST_ADD (suitename, "gnc price equal", Fixture, NULL, setup, test_gnc_price_equal, teardown);
// GNC_TEST_ADD (suitename, "compare prices by date", Fixture, NULL, setup, test_compare_prices_by_date, teardown);
// GNC_TEST_ADD (suitename, "price list is duplicate", Fixture, NULL, setup, test_price_list_is_duplicate, teardown);
-// GNC_TEST_ADD (suitename, "gnc price list insert", Fixture, NULL, setup, test_gnc_price_list_insert, teardown);
+GNC_TEST_ADD (suitename, "gnc price list insert", PriceDBFixture, NULL, setup, test_gnc_price_list_insert, teardown);
// GNC_TEST_ADD (suitename, "gnc price list remove", Fixture, NULL, setup, test_gnc_price_list_remove, teardown);
// GNC_TEST_ADD (suitename, "price list destroy helper", Fixture, NULL, setup, test_price_list_destroy_helper, teardown);
// GNC_TEST_ADD (suitename, "gnc price list destroy", Fixture, NULL, setup, test_gnc_price_list_destroy, teardown);
Summary of changes:
libgnucash/engine/test/utest-gnc-pricedb.c | 37 ++++++++++++++++++++++++++----
1 file changed, 32 insertions(+), 5 deletions(-)
More information about the gnucash-changes
mailing list