summaryrefslogtreecommitdiff
path: root/src/testing/testing_api_cmd_get_instance.c
diff options
context:
space:
mode:
authorChristian Grothoff <grothoff@gnunet.org>2023-09-01 14:27:48 +0200
committerChristian Grothoff <grothoff@gnunet.org>2023-09-01 14:27:48 +0200
commit35dcd4514a93ba0f5353ecd1194fc9b515f2aad4 (patch)
tree399d8f8fbebf5e8ac383fc318b7be08901279a31 /src/testing/testing_api_cmd_get_instance.c
parent858e3047b8b595ab693e16ce0bbe0b8983b072ed (diff)
downloadmerchant-35dcd4514a93ba0f5353ecd1194fc9b515f2aad4.tar.gz
merchant-35dcd4514a93ba0f5353ecd1194fc9b515f2aad4.tar.bz2
merchant-35dcd4514a93ba0f5353ecd1194fc9b515f2aad4.zip
new CRUD APIs for OTP devices and merchant accounts (fixes #7929, #7824), one minor test is still failing...
Diffstat (limited to 'src/testing/testing_api_cmd_get_instance.c')
-rw-r--r--src/testing/testing_api_cmd_get_instance.c229
1 files changed, 9 insertions, 220 deletions
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
@@ -29,39 +29,6 @@
/**
- * 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.
*/
struct GetInstanceState
@@ -93,42 +60,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.
*/
unsigned int http_status;
@@ -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; i<gis->accounts_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; i<gis->accounts_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,