From 35dcd4514a93ba0f5353ecd1194fc9b515f2aad4 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Fri, 1 Sep 2023 14:27:48 +0200 Subject: new CRUD APIs for OTP devices and merchant accounts (fixes #7929, #7824), one minor test is still failing... --- src/testing/testing_api_cmd_get_instance.c | 229 ++--------------------------- 1 file changed, 9 insertions(+), 220 deletions(-) (limited to 'src/testing/testing_api_cmd_get_instance.c') diff --git a/src/testing/testing_api_cmd_get_instance.c b/src/testing/testing_api_cmd_get_instance.c index e706f85b..c3199a7e 100644 --- a/src/testing/testing_api_cmd_get_instance.c +++ b/src/testing/testing_api_cmd_get_instance.c @@ -28,39 +28,6 @@ #include "taler_merchant_testing_lib.h" -/** - * Details about a merchant's bank account. - */ -struct MERCHANT_Account -{ - /** - * salt used to compute h_wire - */ - struct TALER_WireSaltP salt; - - /** - * payto:// URI of the account. - */ - char *payto_uri; - - /** - * Credit facade URL of the account. - */ - char *credit_facade_url; - - /** - * Hash of @e payto_uri and @e salt. - */ - struct TALER_MerchantWireHashP h_wire; - - /** - * true if the account is active, - * false if it is historic. - */ - bool active; -}; - - /** * State of a "GET instance" CMD. */ @@ -92,42 +59,6 @@ struct GetInstanceState */ const char *instance_reference; - /** - * Whether we should check the instance's accounts or not. - */ - bool cmp_accounts; - - /** - * The accounts of the merchant we expect to be active. - */ - const char **active_accounts; - - /** - * The length of @e active_accounts. - */ - unsigned int active_accounts_length; - - /** - * The accounts of the merchant we expect to be inactive. - */ - const char **inactive_accounts; - - /** - * Length of the @e accounts array. - */ - unsigned int accounts_length; - - /** - * Array of @e accounts_length bank accounts of the merchant instance as - * returned by the request. - */ - struct MERCHANT_Account *accounts; - - /** - * The length of @e inactive_accounts. - */ - unsigned int inactive_accounts_length; - /** * Expected HTTP response code. */ @@ -171,21 +102,6 @@ get_instance_cb (void *cls, const struct TALER_MERCHANT_InstanceDetails *details = &igr->details.ok.details; - gis->accounts_length = igr->details.ok.accounts_length; - gis->accounts = GNUNET_new_array (gis->accounts_length, - struct MERCHANT_Account); - for (unsigned int i = 0; iaccounts_length; i++) - { - const struct TALER_MERCHANT_Account *src = &igr->details.ok.accounts[i]; - struct MERCHANT_Account *dst = &gis->accounts[i]; - - dst->salt = src->salt; - dst->payto_uri = GNUNET_strdup (src->payto_uri); - if (NULL != src->credit_facade_url) - dst->credit_facade_url = GNUNET_strdup (src->credit_facade_url); - dst->h_wire = src->h_wire; - dst->active = src->active; - } { const char *name; @@ -283,65 +199,6 @@ get_instance_cb (void *cls, return; } } - /* We aren't guaranteed an order for the accounts, so we just have to check - that we can match each account returned with exactly one account - expected. */ - if (gis->cmp_accounts) - { - unsigned int have_al = igr->details.ok.accounts_length; - unsigned int expected_accounts_length = - gis->active_accounts_length + gis->inactive_accounts_length; - unsigned int matches[GNUNET_NZL (have_al)]; - - if (have_al != expected_accounts_length) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, - "Accounts length does not match\n"); - TALER_TESTING_interpreter_fail (gis->is); - return; - } - - memset (matches, - 0, - sizeof (matches)); - - /* Compare the accounts */ - for (unsigned int i = 0; i < have_al; ++i) - { - const struct TALER_MERCHANT_Account *account - = &igr->details.ok.accounts[i]; - for (unsigned int j = 0; j < gis->active_accounts_length; ++j) - { - if ((0 == strcasecmp (account->payto_uri, - gis->active_accounts[j])) && - account->active) - { - matches[i] += 1; - } - } - for (unsigned int j = 0; j < gis->inactive_accounts_length; ++j) - { - if ((0 == strcasecmp (account->payto_uri, - gis->inactive_accounts[j])) && - (! account->active)) - { - matches[i] += 1; - } - } - } - - // Each account should have exactly one match. - for (unsigned int i = 0; i < have_al; ++i) - { - if (1 != matches[i]) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, - "Instance account does not match\n"); - TALER_TESTING_interpreter_fail (gis->is); - return; - } - } - } } break; case MHD_HTTP_UNAUTHORIZED: @@ -402,14 +259,6 @@ get_instance_cleanup (void *cls, "GET /instances/$ID operation did not complete\n"); TALER_MERCHANT_instance_get_cancel (gis->igh); } - for (unsigned int i = 0; iaccounts_length; i++) - { - struct MERCHANT_Account *acc = &gis->accounts[i]; - - GNUNET_free (acc->payto_uri); - GNUNET_free (acc->credit_facade_url); - } - GNUNET_free (gis->accounts); GNUNET_free (gis); } @@ -431,37 +280,15 @@ get_instance_traits (void *cls, unsigned int index) { struct GetInstanceState *pps = cls; - - if (index < pps->accounts_length) - { - struct TALER_TESTING_Trait traits[] = { - TALER_TESTING_make_trait_merchant_base_url (pps->merchant_url), - TALER_TESTING_make_trait_h_wires ( - index, - &pps->accounts[index].h_wire), - TALER_TESTING_make_trait_payto_uris ( - index, - pps->accounts[index].payto_uri), - TALER_TESTING_trait_end (), - }; - - return TALER_TESTING_get_trait (traits, - ret, - trait, - index); - } - else - { - struct TALER_TESTING_Trait traits[] = { - TALER_TESTING_make_trait_merchant_base_url (pps->merchant_url), - TALER_TESTING_trait_end (), - }; - - return TALER_TESTING_get_trait (traits, - ret, - trait, - index); - } + struct TALER_TESTING_Trait traits[] = { + TALER_TESTING_make_trait_merchant_base_url (pps->merchant_url), + TALER_TESTING_trait_end (), + }; + + return TALER_TESTING_get_trait (traits, + ret, + trait, + index); } @@ -479,44 +306,6 @@ TALER_TESTING_cmd_merchant_get_instance (const char *label, gis->instance_id = instance_id; gis->http_status = http_status; gis->instance_reference = instance_reference; - gis->cmp_accounts = false; - { - struct TALER_TESTING_Command cmd = { - .cls = gis, - .label = label, - .run = &get_instance_run, - .cleanup = &get_instance_cleanup, - .traits = &get_instance_traits - }; - - return cmd; - } -} - - -struct TALER_TESTING_Command -TALER_TESTING_cmd_merchant_get_instance2 (const char *label, - const char *merchant_url, - const char *instance_id, - unsigned int http_status, - const char *instance_reference, - const char *active_accounts[], - unsigned int active_accounts_length, - const char *inactive_accounts[], - unsigned int inactive_accounts_length) -{ - struct GetInstanceState *gis; - - gis = GNUNET_new (struct GetInstanceState); - gis->merchant_url = merchant_url; - gis->instance_id = instance_id; - gis->http_status = http_status; - gis->instance_reference = instance_reference; - gis->cmp_accounts = true; - gis->active_accounts = active_accounts; - gis->active_accounts_length = active_accounts_length; - gis->inactive_accounts = inactive_accounts; - gis->inactive_accounts_length = inactive_accounts_length; { struct TALER_TESTING_Command cmd = { .cls = gis, -- cgit v1.2.3