merchant

Merchant backend to process payments, run by merchants
Log | Files | Refs | Submodules | README | LICENSE

commit 7f718eefc2aefba2d6f08201434a8126d6d465bb
parent f22904ce8e0c196e46a9da68932e5c1fd524391c
Author: bohdan-potuzhnyi <bohdan.potuzhnyi@gmail.com>
Date:   Fri, 11 Apr 2025 11:20:55 +0200

update of the test donau charities logic

Diffstat:
Msrc/include/taler_merchant_testing_lib.h | 1+
Msrc/lib/merchant_api_get_donau_instance.c | 2+-
Msrc/testing/Makefile.am | 5+++++
Msrc/testing/test_merchant_api.c | 8+++++++-
Msrc/testing/testing_api_cmd_get_donau_instances.c | 26++------------------------
Msrc/testing/testing_api_cmd_post_donau_instances.c | 13+++++++++----
6 files changed, 25 insertions(+), 30 deletions(-)

diff --git a/src/include/taler_merchant_testing_lib.h b/src/include/taler_merchant_testing_lib.h @@ -1806,6 +1806,7 @@ TALER_TESTING_cmd_checkserver2 (const char *label, struct TALER_TESTING_Command TALER_TESTING_cmd_merchant_get_donau_instances(const char *label, const char *url, + unsigned int instance_count, unsigned int expected_http_status, ...); diff --git a/src/lib/merchant_api_get_donau_instance.c b/src/lib/merchant_api_get_donau_instance.c @@ -120,7 +120,7 @@ parse_donau_instances (const json_t *ia, } /* Parse the Donau keys */ - const json_t *donau_keys_json = json_object_get(value, "donau_keys"); + const json_t *donau_keys_json = json_object_get(value, "donau_keys_json"); if (NULL == donau_keys_json) { GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Failed to parse donau keys JSON\n"); diff --git a/src/testing/Makefile.am b/src/testing/Makefile.am @@ -106,6 +106,11 @@ libtalermerchanttesting_la_LIBADD = \ -ltalertesting \ $(XLIB) +if HAVE_DONAU +libtalermerchanttesting_la_LIBADD += \ + -ldonautesting +endif + if HAVE_TALERFAKEBANK check_PROGRAMS = \ diff --git a/src/testing/test_merchant_api.c b/src/testing/test_merchant_api.c @@ -1828,6 +1828,9 @@ run (void *cls, struct TALER_TESTING_Command donau[] = { //FIXME: PREPARE THE DONAU to work with us //1. Add the charity to the donau + TALER_TESTING_cmd_get_donau ("get-donau", + cred.cfg, + true), TALER_TESTING_cmd_charity_post ("post-charity", "example", "example.com", @@ -1840,9 +1843,11 @@ run (void *cls, "post-donau-instance", merchant_url, MHD_HTTP_NO_CONTENT), + TALER_TESTING_cmd_sleep("In this time donaukeyupdate must fetch the keys from the donau", 1), TALER_TESTING_cmd_merchant_get_donau_instances( "get-donau-instance", merchant_url, + 1, MHD_HTTP_OK), //FIXME: Add the order payment for the donau //FIXME: Probably the order payment must be @@ -1850,11 +1855,12 @@ run (void *cls, TALER_TESTING_cmd_merchant_delete_donau_instance( "delete-donau-instance", merchant_url, - 123, + 1, MHD_HTTP_NO_CONTENT), TALER_TESTING_cmd_merchant_get_donau_instances( "get-donau-instances-after-delete", merchant_url, + 0, MHD_HTTP_OK), TALER_TESTING_cmd_end () }; diff --git a/src/testing/testing_api_cmd_get_donau_instances.c b/src/testing/testing_api_cmd_get_donau_instances.c @@ -54,11 +54,6 @@ struct GetDonauInstancesState */ unsigned int expected_http_status; - /** - * A NULL-terminated array of Donau instance names. - */ - const char **instances; - /** * The number of instances in the `instances` array. */ @@ -101,20 +96,6 @@ get_donau_instances_cb (void *cls, TALER_TESTING_interpreter_fail(gis->is); return; } - - for (unsigned int i = 0; i < instance_count; ++i) - { - const struct TALER_MERCHANT_DonauInstanceEntry *instance = &response->details.ok.donau_instances[i]; - - if (0 != strcmp(instance->charity_name, gis->instances[i])) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, - "Instance charity name mismatch: expected %s, got %s\n", - gis->instances[i], instance->charity_name); - TALER_TESTING_interpreter_fail(gis->is); - return; - } - } } // Continue to the next test command @@ -178,6 +159,7 @@ get_donau_instances_cleanup(void *cls, struct TALER_TESTING_Command TALER_TESTING_cmd_merchant_get_donau_instances(const char *label, const char *url, + unsigned int instance_count, unsigned int expected_http_status, ...) { @@ -186,14 +168,10 @@ TALER_TESTING_cmd_merchant_get_donau_instances(const char *label, gis = GNUNET_new(struct GetDonauInstancesState); gis->url = url; gis->expected_http_status = expected_http_status; - gis->instances_length = 0; + gis->instances_length = instance_count; va_list ap; va_start(ap, expected_http_status); -// while (NULL != (instance_label = va_arg(ap, const char *))) -// { -// GNUNET_array_append(gis->instances, gis->instances_length, instance_label); -// } va_end(ap); struct TALER_TESTING_Command cmd = { diff --git a/src/testing/testing_api_cmd_post_donau_instances.c b/src/testing/testing_api_cmd_post_donau_instances.c @@ -29,6 +29,7 @@ #include "taler_merchant_service.h" #include "taler_merchant_testing_lib.h" #include "taler_merchant_donau.h" +#include <donau/donau_testing_lib.h> /** * State of a "POST /donau" CMD. @@ -130,6 +131,10 @@ post_donau_run (void *cls, struct PostDonauState *pds = cls; pds->is = is; + + //Replacing the url of the charity + pds->charity.charity_url = TALER_TESTING_get_donau_url(is); + pds->dph = TALER_MERCHANT_donau_instances_post( TALER_TESTING_interpreter_get_context(is), pds->merchant_url, @@ -201,13 +206,13 @@ TALER_TESTING_cmd_merchant_post_donau_instance(const char *label, &date_amount)); struct TALER_MERCHANT_DONAU_Charity charity = { - .charity_url = "https://example.com/charity", - .name = "Example Charity", + .charity_url = "http://replaced.in.post_donau_run/", + .name = "example", .charity_pub = *charity_pub, - .charity_id = 123, + .charity_id = 1, .max_per_year = max_amount, .receipts_to_date = date_amount, - .current_year = 1704067200 + .current_year = 2025 }; pds->merchant_url = merchant_url;