diff options
-rw-r--r-- | src/lib/test_exchange_api.c | 750 |
1 files changed, 362 insertions, 388 deletions
diff --git a/src/lib/test_exchange_api.c b/src/lib/test_exchange_api.c index dd240427e..1a582ec12 100644 --- a/src/lib/test_exchange_api.c +++ b/src/lib/test_exchange_api.c @@ -115,16 +115,16 @@ run (void *cls, * Test withdrawal plus spending. */ struct TALER_TESTING_Command withdraw[] = { - /** * Move money to the exchange's bank account. */ CMD_TRANSFER_TO_EXCHANGE ("create-reserve-1", "EUR:5.01"), - TALER_TESTING_cmd_check_bank_admin_transfer - ("check-create-reserve-1", - "EUR:5.01", bc.user42_payto, bc.exchange_payto, - "create-reserve-1"), + TALER_TESTING_cmd_check_bank_admin_transfer ("check-create-reserve-1", + "EUR:5.01", + bc.user42_payto, + bc.exchange_payto, + "create-reserve-1"), /** * Make a reserve exist, according to the previous * transfer. @@ -144,7 +144,6 @@ run (void *cls, "create-reserve-1", "EUR:0", MHD_HTTP_OK), - TALER_TESTING_cmd_end () }; @@ -152,12 +151,14 @@ run (void *cls, /** * Spend the coin. */ - TALER_TESTING_cmd_deposit - ("deposit-simple", "withdraw-coin-1", 0, - bc.user42_payto, - "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}", - GNUNET_TIME_UNIT_ZERO, "EUR:5", MHD_HTTP_OK), - + TALER_TESTING_cmd_deposit ("deposit-simple", + "withdraw-coin-1", + 0, + bc.user42_payto, + "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}", + GNUNET_TIME_UNIT_ZERO, + "EUR:5", + MHD_HTTP_OK), /** * Try to overdraw. */ @@ -165,43 +166,46 @@ run (void *cls, "create-reserve-1", "EUR:5", MHD_HTTP_CONFLICT), - /** * Try to double spend using different wire details. */ - TALER_TESTING_cmd_deposit - ("deposit-double-1", "withdraw-coin-1", 0, - bc.user43_payto, - "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}", - GNUNET_TIME_UNIT_ZERO, "EUR:5", MHD_HTTP_CONFLICT), - - /** - * Try to double spend using a different transaction id. + TALER_TESTING_cmd_deposit ("deposit-double-1", + "withdraw-coin-1", + 0, + bc.user43_payto, + "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}", + GNUNET_TIME_UNIT_ZERO, + "EUR:5", + MHD_HTTP_CONFLICT), + /* Try to double spend using a different transaction id. * (copied verbatim from old exchange-lib tests.) * FIXME: how can it get a different transaction id? There * isn't such a thing actually, the exchange only knows about * contract terms' hashes. So since the contract terms are * exactly the same as the previous command, - * how can a different id be generated? - */TALER_TESTING_cmd_deposit - ("deposit-double-1", "withdraw-coin-1", 0, - bc.user43_payto, - "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}", - GNUNET_TIME_UNIT_ZERO, "EUR:5", MHD_HTTP_CONFLICT), - + * how can a different id be generated? */// + TALER_TESTING_cmd_deposit ("deposit-double-1", + "withdraw-coin-1", + 0, + bc.user43_payto, + "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}", + GNUNET_TIME_UNIT_ZERO, + "EUR:5", + MHD_HTTP_CONFLICT), /** * Try to double spend with different proposal. */ - TALER_TESTING_cmd_deposit - ("deposit-double-2", "withdraw-coin-1", 0, - bc.user43_payto, - "{\"items\":[{\"name\":\"ice cream\",\"value\":2}]}", - GNUNET_TIME_UNIT_ZERO, "EUR:5", MHD_HTTP_CONFLICT), - + TALER_TESTING_cmd_deposit ("deposit-double-2", + "withdraw-coin-1", + 0, + bc.user43_payto, + "{\"items\":[{\"name\":\"ice cream\",\"value\":2}]}", + GNUNET_TIME_UNIT_ZERO, + "EUR:5", + MHD_HTTP_CONFLICT), TALER_TESTING_cmd_end () }; - struct TALER_TESTING_Command refresh[] = { /* Fill reserve with EUR:5, 1ct is for fees. NOTE: the old * test-suite gave a account number of _424_ to the user at @@ -209,169 +213,167 @@ run (void *cls, * Does this change the tests semantics? */ CMD_TRANSFER_TO_EXCHANGE ("refresh-create-reserve-1", "EUR:5.01"), - TALER_TESTING_cmd_check_bank_admin_transfer - ("check-refresh-create-reserve-1", - "EUR:5.01", bc.user42_payto, bc.exchange_payto, + TALER_TESTING_cmd_check_bank_admin_transfer ( + "check-refresh-create-reserve-1", + "EUR:5.01", + bc.user42_payto, + bc.exchange_payto, "refresh-create-reserve-1"), /** * Make previous command effective. */ CMD_EXEC_WIREWATCH ("wirewatch-2"), - /** * Withdraw EUR:5. */ - TALER_TESTING_cmd_withdraw_amount - ("refresh-withdraw-coin-1", - "refresh-create-reserve-1", - "EUR:5", - MHD_HTTP_OK), - /** - * Try to partially spend (deposit) 1 EUR of the 5 EUR coin + TALER_TESTING_cmd_withdraw_amount ("refresh-withdraw-coin-1", + "refresh-create-reserve-1", + "EUR:5", + 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 - ("refresh-deposit-partial", - "refresh-withdraw-coin-1", 0, - bc.user42_payto, - "{\"items\":[{\"name\":\"ice cream\",\ - \"value\":\"EUR:1\"}]}", - GNUNET_TIME_UNIT_ZERO, "EUR:1", MHD_HTTP_OK), - + * deposit fee) */// + TALER_TESTING_cmd_deposit ("refresh-deposit-partial", + "refresh-withdraw-coin-1", + 0, + bc.user42_payto, + "{\"items\":[{\"name\":\"ice cream\",\"value\":\"EUR:1\"}]}", + GNUNET_TIME_UNIT_ZERO, + "EUR:1", + MHD_HTTP_OK), /** * Melt the rest of the coin's value * (EUR:4.00 = 3x EUR:1.03 + 7x EUR:0.13) */ - TALER_TESTING_cmd_refresh_melt_double - ("refresh-melt-1", - "refresh-withdraw-coin-1", - MHD_HTTP_OK, - NULL), + TALER_TESTING_cmd_refresh_melt_double ("refresh-melt-1", + "refresh-withdraw-coin-1", + MHD_HTTP_OK, + NULL), /** * Complete (successful) melt operation, and * withdraw the coins */ - TALER_TESTING_cmd_refresh_reveal - ("refresh-reveal-1", - "refresh-melt-1", MHD_HTTP_OK), - + TALER_TESTING_cmd_refresh_reveal ("refresh-reveal-1", + "refresh-melt-1", + MHD_HTTP_OK), /** * Do it again to check idempotency */ - TALER_TESTING_cmd_refresh_reveal - ("refresh-reveal-1-idempotency", - "refresh-melt-1", MHD_HTTP_OK), - + TALER_TESTING_cmd_refresh_reveal ("refresh-reveal-1-idempotency", + "refresh-melt-1", + MHD_HTTP_OK), /** * Test that /refresh/link works */ - TALER_TESTING_cmd_refresh_link - ("refresh-link-1", - "refresh-reveal-1", MHD_HTTP_OK), - + TALER_TESTING_cmd_refresh_link ("refresh-link-1", + "refresh-reveal-1", + MHD_HTTP_OK), /** * Try to spend a refreshed EUR:1 coin */ - TALER_TESTING_cmd_deposit - ("refresh-deposit-refreshed-1a", - "refresh-reveal-1-idempotency", 0, - bc.user42_payto, - "{\"items\":[{\"name\":\"ice cream\",\ - \"value\":3}]}", - GNUNET_TIME_UNIT_ZERO, "EUR:1", MHD_HTTP_OK), - + TALER_TESTING_cmd_deposit ("refresh-deposit-refreshed-1a", + "refresh-reveal-1-idempotency", + 0, + bc.user42_payto, + "{\"items\":[{\"name\":\"ice cream\",\"value\":3}]}", + GNUNET_TIME_UNIT_ZERO, + "EUR:1", + MHD_HTTP_OK), /** * Try to spend a refreshed EUR:0.1 coin */ - TALER_TESTING_cmd_deposit - ("refresh-deposit-refreshed-1b", - "refresh-reveal-1", 3, - bc.user43_payto, - "{\"items\":[{\"name\":\"ice cream\",\ - \"value\":3}]}", - GNUNET_TIME_UNIT_ZERO, "EUR:0.1", MHD_HTTP_OK), - + TALER_TESTING_cmd_deposit ("refresh-deposit-refreshed-1b", + "refresh-reveal-1", + 3, + bc.user43_payto, + "{\"items\":[{\"name\":\"ice cream\",\"value\":3}]}", + GNUNET_TIME_UNIT_ZERO, + "EUR:0.1", + MHD_HTTP_OK), /* Test running a failing melt operation (same operation * again must fail) */ - TALER_TESTING_cmd_refresh_melt - ("refresh-melt-failing", - "refresh-withdraw-coin-1", - MHD_HTTP_CONFLICT, - NULL), - + TALER_TESTING_cmd_refresh_melt ("refresh-melt-failing", + "refresh-withdraw-coin-1", + MHD_HTTP_CONFLICT, + NULL), /* FIXME: also test with coin that was already melted * (signature differs from coin that was deposited...) */ - TALER_TESTING_cmd_end () }; struct TALER_TESTING_Command track[] = { - /** - * Try resolving a deposit's WTID, as we never triggered + /* Try resolving a deposit's WTID, as we never triggered * execution of transactions, the answer should be that * the exchange knows about the deposit, but has no WTID yet. - */TALER_TESTING_cmd_track_transaction - ("deposit-wtid-found", - "deposit-simple", 0, MHD_HTTP_ACCEPTED, NULL), - - /** - * Try resolving a deposit's WTID for a failed deposit. + */// + TALER_TESTING_cmd_track_transaction ("deposit-wtid-found", + "deposit-simple", + 0, + MHD_HTTP_ACCEPTED, + NULL), + /* Try resolving a deposit's WTID for a failed deposit. * As the deposit failed, the answer should be that the * exchange does NOT know about the deposit. - */TALER_TESTING_cmd_track_transaction - ("deposit-wtid-failing", - "deposit-double-2", 0, MHD_HTTP_NOT_FOUND, NULL), - - /** - * Try resolving an undefined (all zeros) WTID; this + */// + TALER_TESTING_cmd_track_transaction ("deposit-wtid-failing", + "deposit-double-2", + 0, + MHD_HTTP_NOT_FOUND, + NULL), + /* Try resolving an undefined (all zeros) WTID; this * should fail as obviously the exchange didn't use that * WTID value for any transaction. - */TALER_TESTING_cmd_track_transfer_empty - ("wire-deposit-failing", - NULL, 0, MHD_HTTP_NOT_FOUND), - - /** - * Run transfers. Note that _actual_ aggregation will NOT + */// + TALER_TESTING_cmd_track_transfer_empty ("wire-deposit-failing", + NULL, + 0, + MHD_HTTP_NOT_FOUND), + /* Run transfers. Note that _actual_ aggregation will NOT * happen here, as each deposit operation is run with a - * fresh merchant public key! NOTE: this comment comes - * "verbatim" from the old test-suite, and IMO does not explain - * a lot! - */CMD_EXEC_AGGREGATOR ("run-aggregator"), - + * fresh merchant public key, so the aggregator will treat + * them as "different" merchants and do the wire transfers + * individually. */// + CMD_EXEC_AGGREGATOR ("run-aggregator"), /** * Check all the transfers took place. */ - TALER_TESTING_cmd_check_bank_transfer - ("check_bank_transfer-499c", ec.exchange_url, - "EUR:4.98", bc.exchange_payto, bc.user42_payto), - - TALER_TESTING_cmd_check_bank_transfer - ("check_bank_transfer-99c1", ec.exchange_url, - "EUR:0.98", bc.exchange_payto, bc.user42_payto), - - TALER_TESTING_cmd_check_bank_transfer - ("check_bank_transfer-99c2", ec.exchange_url, - "EUR:0.98", bc.exchange_payto, bc.user42_payto), - - TALER_TESTING_cmd_check_bank_transfer - ("check_bank_transfer-99c", ec.exchange_url, - "EUR:0.08", bc.exchange_payto, bc.user43_payto), - + TALER_TESTING_cmd_check_bank_transfer ("check_bank_transfer-499c", + ec.exchange_url, + "EUR:4.98", + bc.exchange_payto, + bc.user42_payto), + TALER_TESTING_cmd_check_bank_transfer ("check_bank_transfer-99c1", + ec.exchange_url, + "EUR:0.98", + bc.exchange_payto, + bc.user42_payto), + TALER_TESTING_cmd_check_bank_transfer ("check_bank_transfer-99c2", + ec.exchange_url, + "EUR:0.98", + bc.exchange_payto, + bc.user42_payto), + TALER_TESTING_cmd_check_bank_transfer ("check_bank_transfer-99c", + ec.exchange_url, + "EUR:0.08", + bc.exchange_payto, + bc.user43_payto), TALER_TESTING_cmd_check_bank_empty ("check_bank_empty"), - - TALER_TESTING_cmd_track_transaction - ("deposit-wtid-ok", - "deposit-simple", 0, MHD_HTTP_OK, "check_bank_transfer-499c"), - - TALER_TESTING_cmd_track_transfer - ("wire-deposit-success-bank", - "check_bank_transfer-99c1", 0, MHD_HTTP_OK, "EUR:0.98", - "EUR:0.01"), - - TALER_TESTING_cmd_track_transfer - ("wire-deposits-success-wtid", - "deposit-wtid-ok", 0, MHD_HTTP_OK, "EUR:4.98", - "EUR:0.01"), - + TALER_TESTING_cmd_track_transaction ("deposit-wtid-ok", + "deposit-simple", + 0, + MHD_HTTP_OK, + "check_bank_transfer-499c"), + TALER_TESTING_cmd_track_transfer ("wire-deposit-success-bank", + "check_bank_transfer-99c1", + 0, + MHD_HTTP_OK, + "EUR:0.98", + "EUR:0.01"), + TALER_TESTING_cmd_track_transfer ("wire-deposits-success-wtid", + "deposit-wtid-ok", + 0, + MHD_HTTP_OK, + "EUR:4.98", + "EUR:0.01"), TALER_TESTING_cmd_end () }; @@ -385,27 +387,27 @@ run (void *cls, CMD_TRANSFER_TO_EXCHANGE ("create-reserve-unaggregated", "EUR:5.01"), /* "consume" reserve creation transfer. */ - TALER_TESTING_cmd_check_bank_admin_transfer - ("check-create-reserve-unaggregated", - "EUR:5.01", bc.user42_payto, bc.exchange_payto, + TALER_TESTING_cmd_check_bank_admin_transfer ( + "check-create-reserve-unaggregated", + "EUR:5.01", + bc.user42_payto, + bc.exchange_payto, "create-reserve-unaggregated"), CMD_EXEC_WIREWATCH ("wirewatch-unaggregated"), TALER_TESTING_cmd_withdraw_amount ("withdraw-coin-unaggregated", "create-reserve-unaggregated", "EUR:5", MHD_HTTP_OK), - TALER_TESTING_cmd_deposit - ("deposit-unaggregated", - "withdraw-coin-unaggregated", - 0, - bc.user43_payto, - "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}", - GNUNET_TIME_relative_multiply - (GNUNET_TIME_UNIT_YEARS, - 3000), - "EUR:5", - MHD_HTTP_OK), - + TALER_TESTING_cmd_deposit ("deposit-unaggregated", + "withdraw-coin-unaggregated", + 0, + bc.user43_payto, + "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}", + GNUNET_TIME_relative_multiply ( + GNUNET_TIME_UNIT_YEARS, + 3000), + "EUR:5", + MHD_HTTP_OK), CMD_EXEC_AGGREGATOR ("aggregation-attempt"), TALER_TESTING_cmd_check_bank_empty @@ -414,25 +416,22 @@ run (void *cls, TALER_TESTING_cmd_end () }; - struct TALER_TESTING_Command refund[] = { - /** * Fill reserve with EUR:5.01, as withdraw fee is 1 ct per * config. */ CMD_TRANSFER_TO_EXCHANGE ("create-reserve-r1", "EUR:5.01"), - TALER_TESTING_cmd_check_bank_admin_transfer - ("check-create-reserve-r1", - "EUR:5.01", bc.user42_payto, bc.exchange_payto, - "create-reserve-r1"), - + TALER_TESTING_cmd_check_bank_admin_transfer ("check-create-reserve-r1", + "EUR:5.01", + bc.user42_payto, + bc.exchange_payto, + "create-reserve-r1"), /** * Run wire-watch to trigger the reserve creation. */ CMD_EXEC_WIREWATCH ("wirewatch-3"), - /* Withdraw a 5 EUR coin, at fee of 1 ct */ TALER_TESTING_cmd_withdraw_amount ("withdraw-coin-r1", "create-reserve-r1", @@ -442,117 +441,115 @@ run (void *cls, * Spend 5 EUR of the 5 EUR coin (in full) (merchant would * receive EUR:4.99 due to 1 ct deposit fee) */ - TALER_TESTING_cmd_deposit - ("deposit-refund-1", "withdraw-coin-r1", 0, - bc.user42_payto, - "{\"items\":[{\"name\":\"ice cream\"," - "\"value\":\"EUR:5\"}]}", - GNUNET_TIME_UNIT_MINUTES, "EUR:5", MHD_HTTP_OK), - - + TALER_TESTING_cmd_deposit ("deposit-refund-1", + "withdraw-coin-r1", + 0, + bc.user42_payto, + "{\"items\":[{\"name\":\"ice cream\",\"value\":\"EUR:5\"}]}", + GNUNET_TIME_UNIT_MINUTES, + "EUR:5", + MHD_HTTP_OK), /** - * Run transfers. Should do nothing as refund deadline blocks - * it + * Run transfers. Should do nothing as refund deadline blocks it */ CMD_EXEC_AGGREGATOR ("run-aggregator-refund"), - /* Check that aggregator didn't do anything, as expected. * Note, this operation takes two commands: one to "flush" * the preliminary transfer (used to withdraw) from the * fakebank and the second to actually check there are not * other transfers around. */// - TALER_TESTING_cmd_check_bank_empty - ("check_bank_transfer-pre-refund"), - - TALER_TESTING_cmd_refund - ("refund-ok", MHD_HTTP_OK, - "EUR:5", "EUR:0.01", "deposit-refund-1"), - - TALER_TESTING_cmd_refund - ("refund-ok-double", MHD_HTTP_OK, - "EUR:5", "EUR:0.01", "deposit-refund-1"), - + TALER_TESTING_cmd_check_bank_empty ("check_bank_transfer-pre-refund"), + TALER_TESTING_cmd_refund ("refund-ok", + MHD_HTTP_OK, + "EUR:5", + "EUR:0.01", + "deposit-refund-1"), + TALER_TESTING_cmd_refund ("refund-ok-double", + MHD_HTTP_OK, + "EUR:5", + "EUR:0.01", + "deposit-refund-1"), /* Previous /refund(s) had id == 0. */ - TALER_TESTING_cmd_refund_with_id - ("refund-conflicting", MHD_HTTP_CONFLICT, - "EUR:5", "EUR:0.01", "deposit-refund-1", 1), - + TALER_TESTING_cmd_refund_with_id ("refund-conflicting", + MHD_HTTP_CONFLICT, + "EUR:5", + "EUR:0.01", + "deposit-refund-1", + 1), /** * Spend 4.99 EUR of the refunded 4.99 EUR coin (1ct gone * due to refund) (merchant would receive EUR:4.98 due to * 1 ct deposit fee) */ - TALER_TESTING_cmd_deposit - ("deposit-refund-2", "withdraw-coin-r1", 0, - bc.user42_payto, - "{\"items\":[{\"name\":\"more ice cream\"," - "\"value\":\"EUR:5\"}]}", - GNUNET_TIME_UNIT_ZERO, "EUR:4.99", MHD_HTTP_OK), - - + TALER_TESTING_cmd_deposit ("deposit-refund-2", + "withdraw-coin-r1", + 0, + bc.user42_payto, + "{\"items\":[{\"name\":\"more ice cream\",\"value\":\"EUR:5\"}]}", + GNUNET_TIME_UNIT_ZERO, + "EUR:4.99", + MHD_HTTP_OK), /** * Run transfers. This will do the transfer as refund deadline * was 0 */ CMD_EXEC_AGGREGATOR ("run-aggregator-3"), - /** * Check that deposit did run. */ - TALER_TESTING_cmd_check_bank_transfer - ("check_bank_transfer-pre-refund", ec.exchange_url, - "EUR:4.97", bc.exchange_payto, bc.user42_payto), - + TALER_TESTING_cmd_check_bank_transfer ("check_bank_transfer-pre-refund", + ec.exchange_url, + "EUR:4.97", + bc.exchange_payto, + bc.user42_payto), /** * Run failing refund, as past deadline & aggregation. */ - TALER_TESTING_cmd_refund - ("refund-fail", MHD_HTTP_GONE, - "EUR:4.99", "EUR:0.01", "deposit-refund-2"), - - TALER_TESTING_cmd_check_bank_empty - ("check-empty-after-refund"), - + TALER_TESTING_cmd_refund ("refund-fail", + MHD_HTTP_GONE, + "EUR:4.99", + "EUR:0.01", + "deposit-refund-2"), + TALER_TESTING_cmd_check_bank_empty ("check-empty-after-refund"), /** * Test refunded coins are never executed, even past * refund deadline */ CMD_TRANSFER_TO_EXCHANGE ("create-reserve-rb", "EUR:5.01"), - TALER_TESTING_cmd_check_bank_admin_transfer - ("check-create-reserve-rb", - "EUR:5.01", bc.user42_payto, bc.exchange_payto, - "create-reserve-rb"), + TALER_TESTING_cmd_check_bank_admin_transfer ("check-create-reserve-rb", + "EUR:5.01", + bc.user42_payto, + bc.exchange_payto, + "create-reserve-rb"), CMD_EXEC_WIREWATCH ("wirewatch-rb"), - TALER_TESTING_cmd_withdraw_amount ("withdraw-coin-rb", "create-reserve-rb", "EUR:5", MHD_HTTP_OK), - TALER_TESTING_cmd_deposit - ("deposit-refund-1b", "withdraw-coin-rb", 0, - bc.user42_payto, - "{\"items\":[{\"name\":\"ice cream\"," - "\"value\":\"EUR:5\"}]}", - GNUNET_TIME_UNIT_ZERO, "EUR:5", MHD_HTTP_OK), - + TALER_TESTING_cmd_deposit ("deposit-refund-1b", + "withdraw-coin-rb", + 0, + bc.user42_payto, + "{\"items\":[{\"name\":\"ice cream\",\"value\":\"EUR:5\"}]}", + GNUNET_TIME_UNIT_ZERO, + "EUR:5", + MHD_HTTP_OK), /** * Trigger refund (before aggregator had a chance to execute * deposit, even though refund deadline was zero). */ - TALER_TESTING_cmd_refund - ("refund-ok-fast", MHD_HTTP_OK, - "EUR:5", "EUR:0.01", "deposit-refund-1b"), - + TALER_TESTING_cmd_refund ("refund-ok-fast", + MHD_HTTP_OK, + "EUR:5", + "EUR:0.01", + "deposit-refund-1b"), /** * Run transfers. This will do the transfer as refund deadline * was 0, except of course because the refund succeeded, the * transfer should no longer be done. */CMD_EXEC_AGGREGATOR ("run-aggregator-3b"), - /* check that aggregator didn't do anything, as expected */ - TALER_TESTING_cmd_check_bank_empty - ("check-refund-fast-not-run"), - + TALER_TESTING_cmd_check_bank_empty ("check-refund-fast-not-run"), TALER_TESTING_cmd_end () }; @@ -563,15 +560,15 @@ run (void *cls, */ CMD_TRANSFER_TO_EXCHANGE ("payback-create-reserve-1", "EUR:5.01"), - TALER_TESTING_cmd_check_bank_admin_transfer - ("payback-create-reserve-1", - "EUR:5.01", bc.user42_payto, bc.exchange_payto, - "payback-create-reserve-1"), + TALER_TESTING_cmd_check_bank_admin_transfer ("payback-create-reserve-1", + "EUR:5.01", + bc.user42_payto, + bc.exchange_payto, + "payback-create-reserve-1"), /** * Run wire-watch to trigger the reserve creation. */ CMD_EXEC_WIREWATCH ("wirewatch-4"), - /* Withdraw a 5 EUR coin, at fee of 1 ct */ TALER_TESTING_cmd_withdraw_amount ("payback-withdraw-coin-1", "payback-create-reserve-1", @@ -582,36 +579,30 @@ run (void *cls, MHD_HTTP_OK, "payback-withdraw-coin-1", CONFIG_FILE), - /* Refund coin to bank account */ TALER_TESTING_cmd_payback ("payback-1", MHD_HTTP_OK, "payback-withdraw-coin-1", "EUR:5", NULL), - /* Check the money is back with the reserve */ TALER_TESTING_cmd_status ("payback-reserve-status-1", "payback-create-reserve-1", "EUR:5.0", MHD_HTTP_OK), - /* Re-withdraw from this reserve */ TALER_TESTING_cmd_withdraw_amount ("payback-withdraw-coin-2", "payback-create-reserve-1", "EUR:1", MHD_HTTP_OK), - /** * This withdrawal will test the logic to create a "payback" * element to insert into the reserve's history. */ - TALER_TESTING_cmd_withdraw_amount - ("payback-withdraw-coin-2-over", - "payback-create-reserve-1", - "EUR:10", - MHD_HTTP_CONFLICT), - + TALER_TESTING_cmd_withdraw_amount ("payback-withdraw-coin-2-over", + "payback-create-reserve-1", + "EUR:10", + MHD_HTTP_CONFLICT), TALER_TESTING_cmd_status ("payback-reserve-status-2", "payback-create-reserve-1", "EUR:3.99", @@ -620,32 +611,27 @@ run (void *cls, /* These commands should close the reserve because * the aggregator is given a config file that ovverrides * the reserve expiration time (making it now-ish) */ - CMD_TRANSFER_TO_EXCHANGE - ("short-lived-reserve", - "EUR:5.01"), - TALER_TESTING_cmd_check_bank_admin_transfer - ("check-short-lived-reserve", - "EUR:5.01", bc.user42_payto, bc.exchange_payto, - "short-lived-reserve"), - - TALER_TESTING_cmd_exec_wirewatch - ("short-lived-aggregation", - CONFIG_FILE_EXPIRE_RESERVE_NOW), + CMD_TRANSFER_TO_EXCHANGE ("short-lived-reserve", + "EUR:5.01"), + TALER_TESTING_cmd_check_bank_admin_transfer ("check-short-lived-reserve", + "EUR:5.01", + bc.user42_payto, + bc.exchange_payto, + "short-lived-reserve"), + TALER_TESTING_cmd_exec_wirewatch ("short-lived-aggregation", + CONFIG_FILE_EXPIRE_RESERVE_NOW), - TALER_TESTING_cmd_exec_aggregator - ("close-reserves", - CONFIG_FILE_EXPIRE_RESERVE_NOW), + TALER_TESTING_cmd_exec_aggregator ("close-reserves", + CONFIG_FILE_EXPIRE_RESERVE_NOW), TALER_TESTING_cmd_status ("short-lived-status", "short-lived-reserve", "EUR:0", MHD_HTTP_OK), - - TALER_TESTING_cmd_withdraw_amount - ("expired-withdraw", - "short-lived-reserve", - "EUR:1", - MHD_HTTP_CONFLICT), + TALER_TESTING_cmd_withdraw_amount ("expired-withdraw", + "short-lived-reserve", + "EUR:1", + MHD_HTTP_CONFLICT), TALER_TESTING_cmd_check_bank_transfer ("check_bank_short-lived_reimburse", ec.exchange_url, "EUR:5", @@ -677,71 +663,63 @@ run (void *cls, "payback-create-reserve-2", "EUR:1", MHD_HTTP_OK), - TALER_TESTING_cmd_deposit ("payback-deposit-partial", "payback-withdraw-coin-2a", 0, bc.user42_payto, "{\"items\":[{\"name\":\"more ice cream\",\"value\":1}]}", GNUNET_TIME_UNIT_ZERO, "EUR:0.5", MHD_HTTP_OK), - - - TALER_TESTING_cmd_revoke ("revoke-2", MHD_HTTP_OK, + TALER_TESTING_cmd_revoke ("revoke-2", + MHD_HTTP_OK, "payback-withdraw-coin-2a", CONFIG_FILE), - - TALER_TESTING_cmd_payback ("payback-2", MHD_HTTP_OK, + TALER_TESTING_cmd_payback ("payback-2", + MHD_HTTP_OK, "payback-withdraw-coin-2a", "EUR:0.5", NULL), - - TALER_TESTING_cmd_payback ("payback-2b", MHD_HTTP_CONFLICT, + TALER_TESTING_cmd_payback ("payback-2b", + MHD_HTTP_CONFLICT, "payback-withdraw-coin-2a", "EUR:0.5", NULL), - - TALER_TESTING_cmd_deposit - ("payback-deposit-revoked", - "payback-withdraw-coin-2b", 0, - bc.user42_payto, - "{\"items\":[{\"name\":\"more ice cream\",\"value\":1}]}", - GNUNET_TIME_UNIT_ZERO, "EUR:1", MHD_HTTP_NOT_FOUND), - - + TALER_TESTING_cmd_deposit ("payback-deposit-revoked", + "payback-withdraw-coin-2b", + 0, + bc.user42_payto, + "{\"items\":[{\"name\":\"more ice cream\",\"value\":1}]}", + GNUNET_TIME_UNIT_ZERO, + "EUR:1", + MHD_HTTP_NOT_FOUND), /* Test deposit fails after payback, with proof in payback */ /* FIXME: #3887: right now, the exchange will never return the * coin's transaction history with payback data, as we get a * 404 on the DK! */ - TALER_TESTING_cmd_deposit - ("payback-deposit-partial-after-payback", - "payback-withdraw-coin-2a", - 0, - bc.user42_payto, - "{\"items\":[{\"name\":\"extra ice cream\",\"value\":1}]}", - GNUNET_TIME_UNIT_ZERO, - "EUR:0.5", - MHD_HTTP_NOT_FOUND), - + TALER_TESTING_cmd_deposit ("payback-deposit-partial-after-payback", + "payback-withdraw-coin-2a", + 0, + bc.user42_payto, + "{\"items\":[{\"name\":\"extra ice cream\",\"value\":1}]}", + GNUNET_TIME_UNIT_ZERO, + "EUR:0.5", + MHD_HTTP_NOT_FOUND), /* Test that revoked coins cannot be withdrawn */ CMD_TRANSFER_TO_EXCHANGE ("payback-create-reserve-3", "EUR:1.01"), - TALER_TESTING_cmd_check_bank_admin_transfer - ("check-payback-create-reserve-3", - "EUR:1.01", bc.user42_payto, bc.exchange_payto, + TALER_TESTING_cmd_check_bank_admin_transfer ( + "check-payback-create-reserve-3", + "EUR:1.01", + bc.user42_payto, + bc.exchange_payto, "payback-create-reserve-3"), - CMD_EXEC_WIREWATCH ("wirewatch-6"), - - TALER_TESTING_cmd_withdraw_amount - ("payback-withdraw-coin-3-revoked", - "payback-create-reserve-3", - "EUR:1", - MHD_HTTP_NOT_FOUND), - + TALER_TESTING_cmd_withdraw_amount ("payback-withdraw-coin-3-revoked", + "payback-create-reserve-3", + "EUR:1", + MHD_HTTP_NOT_FOUND), /* check that we are empty before the rejection test */ - TALER_TESTING_cmd_check_bank_empty - ("check-empty-again"), + TALER_TESTING_cmd_check_bank_empty ("check-empty-again"), TALER_TESTING_cmd_end () }; @@ -753,10 +731,11 @@ run (void *cls, */ CMD_TRANSFER_TO_EXCHANGE ("create-reserve-1", "EUR:5.01"), - TALER_TESTING_cmd_check_bank_admin_transfer - ("check-create-reserve-1", - "EUR:5.01", bc.user42_payto, bc.exchange_payto, - "create-reserve-1"), + TALER_TESTING_cmd_check_bank_admin_transfer ("check-create-reserve-1", + "EUR:5.01", + bc.user42_payto, + bc.exchange_payto, + "create-reserve-1"), /** * Run wire-watch to trigger the reserve creation. */ @@ -766,31 +745,29 @@ run (void *cls, "create-reserve-1", "EUR:5", 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, - "{\"items\":[{\"name\":\"ice cream\",\ - \"value\":\"EUR:1\"}]}", - GNUNET_TIME_UNIT_ZERO, "EUR:1", 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, + "{\"items\":[{\"name\":\"ice cream\",\"value\":\"EUR:1\"}]}", + GNUNET_TIME_UNIT_ZERO, + "EUR:1", + MHD_HTTP_OK), /** * Melt SOME of the rest of the coin's value * (EUR:3.17 = 3x EUR:1.03 + 7x EUR:0.13) */ - TALER_TESTING_cmd_refresh_melt - ("refresh-melt-1", - "withdraw-revocation-coin-1", - MHD_HTTP_OK, - NULL), + TALER_TESTING_cmd_refresh_melt ("refresh-melt-1", + "withdraw-revocation-coin-1", + MHD_HTTP_OK, + NULL), /** * Complete (successful) melt operation, and withdraw the coins */ - TALER_TESTING_cmd_refresh_reveal - ("refresh-reveal-1", - "refresh-melt-1", MHD_HTTP_OK), + TALER_TESTING_cmd_refresh_reveal ("refresh-reveal-1", + "refresh-melt-1", + MHD_HTTP_OK), /* Make refreshed coin invalid */ TALER_TESTING_cmd_revoke ("revoke-1", MHD_HTTP_OK, @@ -816,18 +793,17 @@ run (void *cls, /* Melt original coin AGAIN, but only create one 0.1 EUR coin; This costs EUR:0.03 in refresh and EUR:01 in withdraw fees, leaving EUR:3.69. */ - TALER_TESTING_cmd_refresh_melt - ("refresh-melt-2", - "withdraw-revocation-coin-1", - MHD_HTTP_OK, - "EUR:0.1", - NULL), + TALER_TESTING_cmd_refresh_melt ("refresh-melt-2", + "withdraw-revocation-coin-1", + MHD_HTTP_OK, + "EUR:0.1", + NULL), /** * Complete (successful) melt operation, and withdraw the coins */ - TALER_TESTING_cmd_refresh_reveal - ("refresh-reveal-2", - "refresh-melt-2", MHD_HTTP_OK), + TALER_TESTING_cmd_refresh_reveal ("refresh-reveal-2", + "refresh-melt-2", + MHD_HTTP_OK), /* Revokes refreshed EUR:0.1 coin */ TALER_TESTING_cmd_revoke ("revoke-2", MHD_HTTP_OK, @@ -870,17 +846,14 @@ run (void *cls, i++) { reserve_open_close[(i * RESERVE_OPEN_CLOSE_CHUNK) + 0] - = CMD_TRANSFER_TO_EXCHANGE - ("reserve-open-close-key", - "EUR:20"); + = CMD_TRANSFER_TO_EXCHANGE ("reserve-open-close-key", + "EUR:20"); reserve_open_close[(i * RESERVE_OPEN_CLOSE_CHUNK) + 1] - = TALER_TESTING_cmd_exec_wirewatch - ("reserve-open-close-wirewatch", - CONFIG_FILE_EXPIRE_RESERVE_NOW); + = TALER_TESTING_cmd_exec_wirewatch ("reserve-open-close-wirewatch", + CONFIG_FILE_EXPIRE_RESERVE_NOW); reserve_open_close[(i * RESERVE_OPEN_CLOSE_CHUNK) + 2] - = TALER_TESTING_cmd_exec_aggregator - ("reserve-open-close-aggregation", - CONFIG_FILE_EXPIRE_RESERVE_NOW); + = TALER_TESTING_cmd_exec_aggregator ("reserve-open-close-aggregation", + CONFIG_FILE_EXPIRE_RESERVE_NOW); reserve_open_close[(i * RESERVE_OPEN_CLOSE_CHUNK) + 3] = TALER_TESTING_cmd_status ("reserve-open-close-status", "reserve-open-close-key", @@ -890,38 +863,39 @@ run (void *cls, reserve_open_close[RESERVE_OPEN_CLOSE_ITERATIONS * RESERVE_OPEN_CLOSE_CHUNK] = TALER_TESTING_cmd_end (); - - struct TALER_TESTING_Command commands[] = { - TALER_TESTING_cmd_batch ("wire", - wire), - TALER_TESTING_cmd_batch ("withdraw", - withdraw), - TALER_TESTING_cmd_batch ("spend", - spend), - TALER_TESTING_cmd_batch ("refresh", - refresh), - TALER_TESTING_cmd_batch ("track", - track), - TALER_TESTING_cmd_batch ("unaggregation", - unaggregation), - TALER_TESTING_cmd_batch ("refund", - refund), - TALER_TESTING_cmd_batch ("payback", - payback), - TALER_TESTING_cmd_batch ("reserve-open-close", - reserve_open_close), - TALER_TESTING_cmd_batch ("revocation", - revocation), - /** - * End the suite. Fixme: better to have a label for this - * too, as it shows as "(null)" on logs. - */ - TALER_TESTING_cmd_end () - }; - - TALER_TESTING_run_with_fakebank (is, - commands, - bc.bank_url); + { + struct TALER_TESTING_Command commands[] = { + TALER_TESTING_cmd_batch ("wire", + wire), + TALER_TESTING_cmd_batch ("withdraw", + withdraw), + TALER_TESTING_cmd_batch ("spend", + spend), + TALER_TESTING_cmd_batch ("refresh", + refresh), + TALER_TESTING_cmd_batch ("track", + track), + TALER_TESTING_cmd_batch ("unaggregation", + unaggregation), + TALER_TESTING_cmd_batch ("refund", + refund), + TALER_TESTING_cmd_batch ("payback", + payback), + TALER_TESTING_cmd_batch ("reserve-open-close", + reserve_open_close), + TALER_TESTING_cmd_batch ("revocation", + revocation), + /** + * End the suite. Fixme: better to have a label for this + * too, as it shows as "(null)" on logs. + */ + TALER_TESTING_cmd_end () + }; + + TALER_TESTING_run_with_fakebank (is, + commands, + bc.bank_url); + } } |