diff options
Diffstat (limited to 'src/testing/test_exchange_api_revocation.c')
-rw-r--r-- | src/testing/test_exchange_api_revocation.c | 125 |
1 files changed, 50 insertions, 75 deletions
diff --git a/src/testing/test_exchange_api_revocation.c b/src/testing/test_exchange_api_revocation.c index 0531c5b83..92e36a30a 100644 --- a/src/testing/test_exchange_api_revocation.c +++ b/src/testing/test_exchange_api_revocation.c @@ -1,6 +1,6 @@ /* This file is part of TALER - Copyright (C) 2014--2020 Taler Systems SA + Copyright (C) 2014--2023 Taler Systems SA TALER is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -29,6 +29,7 @@ #include "taler_exchange_service.h" #include "taler_json_lib.h" #include <gnunet/gnunet_util_lib.h> +#include <gnunet/gnunet_testing_lib.h> #include <microhttpd.h> #include "taler_bank_service.h" #include "taler_fakebank_lib.h" @@ -38,17 +39,12 @@ * Configuration file we use. One (big) configuration is used * for the various components for this test. */ -#define CONFIG_FILE "test_exchange_api.conf" +static char *config_file; /** - * Exchange configuration data. + * Our credentials. */ -static struct TALER_TESTING_ExchangeConfiguration ec; - -/** - * Bank configuration data. - */ -static struct TALER_TESTING_BankConfiguration bc; +static struct TALER_TESTING_Credentials cred; /** @@ -62,51 +58,55 @@ run (void *cls, struct TALER_TESTING_Interpreter *is) { struct TALER_TESTING_Command revocation[] = { - TALER_TESTING_cmd_auditor_add ("add-auditor-OK", - MHD_HTTP_NO_CONTENT, - false), - TALER_TESTING_cmd_wire_add ("add-wire-account", - "payto://x-taler-bank/localhost/2", - MHD_HTTP_NO_CONTENT, - false), - TALER_TESTING_cmd_exec_offline_sign_keys ("offline-sign-future-keys", - CONFIG_FILE), - TALER_TESTING_cmd_check_keys_pull_all_keys ("refetch /keys", - 1), + TALER_TESTING_cmd_run_fakebank ("run-fakebank", + cred.cfg, + "exchange-account-2"), + TALER_TESTING_cmd_system_start ("start-taler", + config_file, + "-e", + NULL), + TALER_TESTING_cmd_get_exchange ("get-exchange", + cred.cfg, + NULL, + true, + true), /** * Fill reserve with EUR:10.02, as withdraw fee is 1 ct per * config. */ TALER_TESTING_cmd_admin_add_incoming ("create-reserve-1", "EUR:10.02", - &bc.exchange_auth, - bc.user42_payto), + &cred.ba, + cred.user42_payto), TALER_TESTING_cmd_check_bank_admin_transfer ("check-create-reserve-1", "EUR:10.02", - bc.user42_payto, - bc.exchange_payto, + cred.user42_payto, + cred.exchange_payto, "create-reserve-1"), /** * Run wire-watch to trigger the reserve creation. */ - TALER_TESTING_cmd_exec_wirewatch ("wirewatch-4", - CONFIG_FILE), + TALER_TESTING_cmd_exec_wirewatch2 ("wirewatch-4", + config_file, + "exchange-account-2"), /* Withdraw a 5 EUR coin, at fee of 1 ct */ TALER_TESTING_cmd_withdraw_amount ("withdraw-revocation-coin-1", "create-reserve-1", "EUR:5", + 0, /* age restriction off */ MHD_HTTP_OK), /* Withdraw another 5 EUR coin, at fee of 1 ct */ TALER_TESTING_cmd_withdraw_amount ("withdraw-revocation-coin-2", "create-reserve-1", "EUR:5", + 0, /* age restriction off */ MHD_HTTP_OK), /* Try to partially spend (deposit) 1 EUR of the 5 EUR coin (in full) * (merchant would receive EUR:0.99 due to 1 ct deposit fee) */// TALER_TESTING_cmd_deposit ("deposit-partial", "withdraw-revocation-coin-1", 0, - bc.user42_payto, + cred.user42_payto, "{\"items\":[{\"name\":\"ice cream\",\"value\":\"EUR:1\"}]}", GNUNET_TIME_UNIT_ZERO, "EUR:1", @@ -115,7 +115,7 @@ run (void *cls, TALER_TESTING_cmd_deposit ("deposit-full", "withdraw-revocation-coin-2", 0, - bc.user42_payto, + cred.user42_payto, "{\"items\":[{\"name\":\"ice cream\",\"value\":\"EUR:5\"}]}", GNUNET_TIME_UNIT_ZERO, "EUR:5", @@ -144,12 +144,12 @@ run (void *cls, TALER_TESTING_cmd_revoke ("revoke-2-EUR:5", MHD_HTTP_OK, "refresh-melt-1", - CONFIG_FILE), + config_file), /* Also make fully spent coin invalid (should be same denom) */ TALER_TESTING_cmd_revoke ("revoke-2-EUR:5", MHD_HTTP_OK, "withdraw-revocation-coin-2", - CONFIG_FILE), + config_file), /* Refund fully spent coin (which should fail) */ TALER_TESTING_cmd_recoup ("recoup-fully-spent", MHD_HTTP_CONFLICT, @@ -211,12 +211,12 @@ run (void *cls, TALER_TESTING_cmd_revoke ("revoke-3-EUR:0.1", MHD_HTTP_OK, "refresh-reveal-2", - CONFIG_FILE), + config_file), /* Revoke also original coin denomination */ TALER_TESTING_cmd_revoke ("revoke-4-EUR:5", MHD_HTTP_OK, "withdraw-revocation-coin-1", - CONFIG_FILE), + config_file), /* Refund coin EUR:0.1 to original coin, creating zombie! */ TALER_TESTING_cmd_recoup_refresh ("recoup-2", MHD_HTTP_OK, @@ -238,9 +238,8 @@ run (void *cls, }; (void) cls; - TALER_TESTING_run_with_fakebank (is, - revocation, - bc.exchange_auth.wire_gateway_url); + TALER_TESTING_run (is, + revocation); } @@ -249,48 +248,24 @@ main (int argc, char *const *argv) { (void) argc; - (void) argv; - /* These environment variables get in the way... */ - unsetenv ("XDG_DATA_HOME"); - unsetenv ("XDG_CONFIG_HOME"); - GNUNET_log_setup ("test-exchange-api-revocation", - "INFO", - NULL); - /* Check fakebank port is available and get config */ - if (GNUNET_OK != - TALER_TESTING_prepare_fakebank (CONFIG_FILE, - "exchange-account-2", - &bc)) - return 77; - TALER_TESTING_cleanup_files (CONFIG_FILE); - /* @helpers. Run keyup, create tables, ... Note: it - * fetches the port number from config in order to see - * if it's available. */ - switch (TALER_TESTING_prepare_exchange (CONFIG_FILE, - GNUNET_YES, - &ec)) { - case GNUNET_SYSERR: - GNUNET_break (0); - return 1; - case GNUNET_NO: - return 77; - case GNUNET_OK: - if (GNUNET_OK != - /* Set up event loop and reschedule context, plus - * start/stop the exchange. It calls TALER_TESTING_setup - * which creates the 'is' object. - */ - TALER_TESTING_setup_with_exchange (&run, - NULL, - CONFIG_FILE)) - return 1; - break; - default: - GNUNET_break (0); - return 1; + char *cipher; + + cipher = GNUNET_STRINGS_get_suffix_from_binary_name (argv[0]); + GNUNET_assert (NULL != cipher); + GNUNET_asprintf (&config_file, + "test_exchange_api-%s.conf", + cipher); + GNUNET_free (cipher); } - return 0; + return TALER_TESTING_main (argv, + "INFO", + config_file, + "exchange-account-2", + TALER_TESTING_BS_FAKEBANK, + &cred, + &run, + NULL); } |