From 90353919072c2d13a65b396f4d7c5ebd502eca26 Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Sat, 17 Feb 2024 22:43:52 +0800 Subject: [PATCH] [test-commodities.cpp] add some tests for gnc_quote_sources --- libgnucash/engine/test/test-commodities.cpp | 27 +++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/libgnucash/engine/test/test-commodities.cpp b/libgnucash/engine/test/test-commodities.cpp index 09ce302fb3..64c579e048 100644 --- a/libgnucash/engine/test/test-commodities.cpp +++ b/libgnucash/engine/test/test-commodities.cpp @@ -30,6 +30,32 @@ #include "test-engine-stuff.h" #include "test-stuff.h" +static void +test_quote_sources () +{ + do_test (gnc_quote_source_num_entries(SOURCE_CURRENCY) == 1, "source currency = 1 source"); + do_test (gnc_quote_source_lookup_by_ti (SOURCE_CURRENCY, 0) != nullptr, "lookup_by_ti currency exists"); + do_test (gnc_quote_source_lookup_by_internal("currency") != nullptr, "lookup_by_internal: currency exists"); + do_test (gnc_quote_source_lookup_by_internal("CURRENCY") != nullptr, "lookup_by_internal: CURRENCY exists"); // old internal name + + do_test (gnc_quote_source_num_entries(SOURCE_UNKNOWN) == 0, "source unknown = 0 source"); + do_test (gnc_quote_source_lookup_by_ti (SOURCE_UNKNOWN, 0) == nullptr, "lookup_by_ti unknown fails"); + + do_test (gnc_quote_source_num_entries((QuoteSourceType)500) == 0, "invalid = 0 entries"); + do_test (gnc_quote_source_lookup_by_ti ((QuoteSourceType)500, 0) == nullptr, "lookup_by_ti invalid returns null, same as new_quote_sources"); + + gnc_quote_source_add_new ("test-source", true); + + do_test (gnc_quote_source_num_entries(SOURCE_UNKNOWN) == 1, "source unknown = 1 source"); + do_test (gnc_quote_source_lookup_by_ti (SOURCE_UNKNOWN, 0) != nullptr, "lookup_by_ti unknown exists"); + + do_test (gnc_quote_source_num_entries((QuoteSourceType)500) == 1, "invalid = 1 entry from new_quote_sources"); + do_test (gnc_quote_source_lookup_by_ti ((QuoteSourceType)500, 0) != nullptr, "lookup_by_ti invalid returns new_quote_sources"); + + // internal name: + do_test (gnc_quote_source_lookup_by_internal("treasure") == nullptr, "lookup_by_internal: treasure doesn't exist"); +} + static void test_commodity(void) { @@ -205,6 +231,7 @@ main (int argc, char **argv) gnc_commodity_table_register(); test_commodity(); + test_quote_sources (); print_test_results();