From 584bc611921e71c1cab84995d19ff683c96305d1 Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Sat, 28 Jun 2025 14:09:23 +0800 Subject: [PATCH] [utest-Transaction.cpp] test actual kvp slots --- libgnucash/engine/test/utest-Transaction.cpp | 21 ++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/libgnucash/engine/test/utest-Transaction.cpp b/libgnucash/engine/test/utest-Transaction.cpp index 873c3251aa..bd72584d8e 100644 --- a/libgnucash/engine/test/utest-Transaction.cpp +++ b/libgnucash/engine/test/utest-Transaction.cpp @@ -52,6 +52,7 @@ static const char *trans_notes_str = "notes"; static const char *void_reason_str = "void-reason"; static const char *void_time_str = "void-time"; static const char *void_former_notes_str = "void-former-notes"; +static const char *doclink_uri_str = "assoc_uri"; const char *trans_is_closing_str = "book_closing"; #define TRANS_DATE_DUE_KVP "trans-date-due" #define TRANS_TXN_TYPE_KVP "trans-txn-type" @@ -1745,21 +1746,29 @@ static void test_xaccTransGetReadOnly (Fixture *fixture, gconstpointer pData) { auto txn = fixture->txn; + auto frame = fixture->txn->inst.kvp_data; + g_assert_cmpstr (xaccTransGetReadOnly (txn), ==, nullptr); + g_assert_null (frame->get_slot({TRANS_READ_ONLY_REASON})); xaccTransSetReadOnly (txn, "RO"); g_assert_cmpstr (xaccTransGetReadOnly (txn), ==, "RO"); + g_assert_cmpstr (frame->get_slot({TRANS_READ_ONLY_REASON})->get(), ==, "RO"); xaccTransSetReadOnly (txn, nullptr); // reason being nullptr is a NOP g_assert_cmpstr (xaccTransGetReadOnly (txn), ==, "RO"); + g_assert_cmpstr (frame->get_slot({TRANS_READ_ONLY_REASON})->get(), ==, "RO"); xaccTransClearReadOnly (txn); g_assert_cmpstr (xaccTransGetReadOnly (txn), ==, nullptr); + g_assert_null (frame->get_slot({TRANS_READ_ONLY_REASON})); xaccTransSetReadOnly (txn, ""); g_assert_cmpstr (xaccTransGetReadOnly (txn), ==, ""); + g_assert_cmpstr (frame->get_slot({TRANS_READ_ONLY_REASON})->get(), ==, ""); xaccTransClearReadOnly (txn); + g_assert_null (frame->get_slot({TRANS_READ_ONLY_REASON})); } @@ -1833,43 +1842,55 @@ static void test_xaccTransSetNotes (Fixture *fixture, gconstpointer pData) { auto trans = fixture->txn; + auto frame = fixture->txn->inst.kvp_data; xaccTransSetNotes (trans, "set"); g_assert_cmpstr (xaccTransGetNotes (trans), ==, "set"); + g_assert_cmpstr (frame->get_slot({trans_notes_str})->get(), ==, "set"); xaccTransSetNotes (trans, ""); g_assert_cmpstr (xaccTransGetNotes (trans), ==, ""); + g_assert_cmpstr (frame->get_slot({trans_notes_str})->get(), ==, ""); xaccTransSetNotes (trans, "reset"); g_assert_cmpstr (xaccTransGetNotes (trans), ==, "reset"); + g_assert_cmpstr (frame->get_slot({trans_notes_str})->get(), ==, "reset"); // calling xaccTransSetNotes with notes==null is currently NOP xaccTransSetNotes (trans, NULL); g_assert_cmpstr (xaccTransGetNotes (trans), ==, "reset"); + g_assert_cmpstr (frame->get_slot({trans_notes_str})->get(), ==, "reset"); } static void test_xaccTransSetDocLink (Fixture *fixture, gconstpointer pData) { auto trans = fixture->txn; + auto frame = fixture->txn->inst.kvp_data; g_assert_cmpstr (xaccTransGetDocLink (trans), ==, NULL); + g_assert_null (frame->get_slot({doclink_uri_str})); xaccTransSetDocLink (trans, "doclink"); g_assert_cmpstr (xaccTransGetDocLink (trans), ==, "doclink"); + g_assert_cmpstr (frame->get_slot({doclink_uri_str})->get(), ==, "doclink"); xaccTransSetDocLink (trans, "unset"); g_assert_cmpstr (xaccTransGetDocLink (trans), ==, "unset"); + g_assert_cmpstr (frame->get_slot({doclink_uri_str})->get(), ==, "unset"); xaccTransSetDocLink (trans, ""); g_assert_cmpstr (xaccTransGetDocLink (trans), ==, NULL); + g_assert_null (frame->get_slot({doclink_uri_str})); xaccTransSetDocLink (trans, "reset"); g_assert_cmpstr (xaccTransGetDocLink (trans), ==, "reset"); + g_assert_cmpstr (frame->get_slot({doclink_uri_str})->get(), ==, "reset"); // calling xaccTransSetDocLink with doclink==null is currently NOP xaccTransSetDocLink (trans, NULL); g_assert_cmpstr (xaccTransGetDocLink (trans), ==, "reset"); + g_assert_cmpstr (frame->get_slot({doclink_uri_str})->get(), ==, "reset"); } static void