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:
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;