diff options
author | Marcello Stanisci <stanisci.m@gmail.com> | 2018-05-17 14:30:02 +0200 |
---|---|---|
committer | Marcello Stanisci <stanisci.m@gmail.com> | 2018-05-17 14:30:02 +0200 |
commit | 2fff7d8f3abfdd29b865c94285f3814d8b5f7ecc (patch) | |
tree | 552c48215bb5afde9c6870e0919432e8fd22599b | |
parent | e94e8c34c58343001dfe84ed8f5a87f1516c687d (diff) | |
download | exchange-2fff7d8f3abfdd29b865c94285f3814d8b5f7ecc.tar.xz |
Trigger /refund currency missmatch the right way.
-rw-r--r-- | src/exchange-lib/exchange_api_refund.c | 4 | ||||
-rw-r--r-- | src/exchange-lib/test_exchange_api_twisted.c | 17 | ||||
-rw-r--r-- | src/exchange-lib/testing_api_cmd_refund.c | 8 |
3 files changed, 15 insertions, 14 deletions
diff --git a/src/exchange-lib/exchange_api_refund.c b/src/exchange-lib/exchange_api_refund.c index ef1d66b90..1ddf642d6 100644 --- a/src/exchange-lib/exchange_api_refund.c +++ b/src/exchange-lib/exchange_api_refund.c @@ -180,6 +180,10 @@ handle_refund_finished (void *cls, /* Kind of normal: the money was already sent to the merchant (it was too late for the refund). */ break; + case MHD_HTTP_PRECONDITION_FAILED: + /* Client request was inconsistent; might be a currency missmatch + problem. */ + break; case MHD_HTTP_INTERNAL_SERVER_ERROR: /* Server had an internal issue; we should retry, but this API leaves this to the application */ diff --git a/src/exchange-lib/test_exchange_api_twisted.c b/src/exchange-lib/test_exchange_api_twisted.c index 6b044a8e6..63358e755 100644 --- a/src/exchange-lib/test_exchange_api_twisted.c +++ b/src/exchange-lib/test_exchange_api_twisted.c @@ -201,7 +201,7 @@ run (void *cls, /* Next chunk, refund conflicts (contract hash missmatch [!], - original deposit does not exist, + original deposit does not exist V, currency missmatch) V; 'refund_transaction()' has many of the relevant cases; @@ -235,18 +235,11 @@ run (void *cls, "EUR:5", MHD_HTTP_OK), - TALER_TESTING_cmd_modify_object_ul - ("hack-currency", - CONFIG_FILE, - /* Will make currency missmatch */ - "refund_amount", - "USD:5"), - TALER_TESTING_cmd_refund ("refund-currency-missmatch", - MHD_HTTP_BAD_REQUEST, - "EUR:5", - "EUR:0.01", + MHD_HTTP_PRECONDITION_FAILED, + "USD:5", + "USD:0.01", "deposit-refund-1"), TALER_TESTING_cmd_refund @@ -291,7 +284,7 @@ run (void *cls, TALER_TESTING_cmd_refund ("refund-deposit-not-found", - MHD_HTTP_BAD_REQUEST, + MHD_HTTP_NOT_FOUND, "EUR:5", "EUR:0.01", "deposit-refund-to-fail"), diff --git a/src/exchange-lib/testing_api_cmd_refund.c b/src/exchange-lib/testing_api_cmd_refund.c index 35cb20d26..d0f48bb22 100644 --- a/src/exchange-lib/testing_api_cmd_refund.c +++ b/src/exchange-lib/testing_api_cmd_refund.c @@ -227,8 +227,12 @@ refund_run (void *cls, } rs->rh = TALER_EXCHANGE_refund - (rs->exchange, &refund_amount, &refund_fee, &h_contract_terms, - &coin, rs->refund_transaction_id, + (rs->exchange, + &refund_amount, + &refund_fee, + &h_contract_terms, + &coin, + rs->refund_transaction_id, (const struct TALER_MerchantPrivateKeyP *) merchant_priv, &refund_cb, rs); |