merchant

Merchant backend to process payments, run by merchants
Log | Files | Refs | Submodules | README | LICENSE

commit 9934b64d87c47eeef3b80e201b0068e506de5ba5
parent be0f95411aaecc61a8827ad62ab18bebede378bf
Author: Marcello Stanisci <stanisci.m@gmail.com>
Date:   Thu, 15 Mar 2018 12:13:33 +0100

test against invalid proposal.

Diffstat:
Msrc/lib/test_merchant_api_twisted.c | 179++++++++++++++++++++++++++++++++++++++++++++++---------------------------------
1 file changed, 105 insertions(+), 74 deletions(-)

diff --git a/src/lib/test_merchant_api_twisted.c b/src/lib/test_merchant_api_twisted.c @@ -182,6 +182,111 @@ run (void *cls, struct TALER_TESTING_Command commands[] = { + + /**** Covering /proposal lib ****/ + + /** + * Cause the PUT /proposal callback to be called + * with a response code == 0. We achieve this by malforming + * the response body. + */ + + TALER_TESTING_cmd_malform_response + ("malform-proposal", + PROXY_MERCHANT_CONFIG_FILE), + + TALER_TESTING_cmd_proposal + ("create-proposal-0", + twister_merchant_url, + is->ctx, + 0, + "{\"max_fee\":\ + {\"currency\":\"EUR\",\ + \"value\":0,\ + \"fraction\":50000000},\ + \"order_id\":\"1\",\ + \"refund_deadline\":\"\\/Date(0)\\/\",\ + \"pay_deadline\":\"\\/Date(99999999999)\\/\",\ + \"amount\":\ + {\"currency\":\"EUR\",\ + \"value\":5,\ + \"fraction\":0},\ + \"summary\": \"merchant-lib testcase\",\ + \"products\": [ {\"description\":\"ice cream\",\ + \"value\":\"{EUR:5}\"} ] }", + NULL), + + + /** + * Cause proposal to be invalid: this is achieved + * by deleting the "order_id" field of it. + */ + TALER_TESTING_cmd_delete_object ("remove-order-id", + PROXY_MERCHANT_CONFIG_FILE, + "order_id"), + + TALER_TESTING_cmd_proposal + ("create-proposal-1", + twister_merchant_url, + is->ctx, + 0, + "{\"max_fee\":\ + {\"currency\":\"EUR\",\ + \"value\":0,\ + \"fraction\":50000000},\ + \"order_id\":\"2\",\ + \"refund_deadline\":\"\\/Date(0)\\/\",\ + \"pay_deadline\":\"\\/Date(99999999999)\\/\",\ + \"amount\":\ + {\"currency\":\"EUR\",\ + \"value\":5,\ + \"fraction\":0},\ + \"summary\": \"merchant-lib testcase\",\ + \"products\": [ {\"description\":\"ice cream\",\ + \"value\":\"{EUR:5}\"} ] }", + NULL), + + /**** Covering /history lib ****/ + + /** + * Changing the response code to a unexpected + * one. NOTE: this is unexpected to the *lib* + * code, that is then expected to trigger some + * emergency behaviour, like setting the response + * code to zero before calling the callback. + */ + TALER_TESTING_cmd_hack_response_code + ("twist-history", + PROXY_MERCHANT_CONFIG_FILE, + MHD_HTTP_GONE), + + TALER_TESTING_cmd_history ("history-0", + twister_merchant_url, + is->ctx, + 0, + GNUNET_TIME_UNIT_ZERO_ABS, + 1, // nresult + 10, // start + 10), // nrows + /** + * Making the returned response malformed, in order + * to make the JSON downloader+parser fail and call + * the lib passing a response code as zero. + */ + TALER_TESTING_cmd_malform_response + ("malform-history", + PROXY_MERCHANT_CONFIG_FILE), + + TALER_TESTING_cmd_history ("history-1", + twister_merchant_url, + is->ctx, + 0, // also works with MHD_HTTP_GONE + GNUNET_TIME_UNIT_ZERO_ABS, + 1, // nresult + 10, // start + 10), // nrows + + #ifdef TEST_FAILED_DEPENDENCY /** * Move money to the exchange's bank account. @@ -296,80 +401,6 @@ run (void *cls, #endif - /**** Covering /history lib ****/ - - /** - * Changing the response code to a unexpected - * one. NOTE: this is unexpected to the *lib* - * code, that is then expected to trigger some - * emergency behaviour, like setting the response - * code to zero before calling the callback. - */ - TALER_TESTING_cmd_hack_response_code - ("twist-history", - PROXY_MERCHANT_CONFIG_FILE, - MHD_HTTP_GONE), - - TALER_TESTING_cmd_history ("history-0", - twister_merchant_url, - is->ctx, - 0, - GNUNET_TIME_UNIT_ZERO_ABS, - 1, // nresult - 10, // start - 10), // nrows - /** - * Making the returned response malformed, in order - * to make the JSON downloader+parser fail and call - * the lib passing a response code as zero. - */ - TALER_TESTING_cmd_malform_response - ("malform-history", - PROXY_MERCHANT_CONFIG_FILE), - - TALER_TESTING_cmd_history ("history-1", - twister_merchant_url, - is->ctx, - 0, // also works with MHD_HTTP_GONE - GNUNET_TIME_UNIT_ZERO_ABS, - 1, // nresult - 10, // start - 10), // nrows - - /**** Covering /proposal lib ****/ - - /** - * Cause the PUT /proposal callback to be called - * with a response code == 0. We achieve this by malforming - * the response body. - */ - - TALER_TESTING_cmd_malform_response - ("malform-proposal", - PROXY_MERCHANT_CONFIG_FILE), - - TALER_TESTING_cmd_proposal - ("create-proposal-0", - twister_merchant_url, - is->ctx, - 0, - "{\"max_fee\":\ - {\"currency\":\"EUR\",\ - \"value\":0,\ - \"fraction\":50000000},\ - \"order_id\":\"1\",\ - \"refund_deadline\":\"\\/Date(0)\\/\",\ - \"pay_deadline\":\"\\/Date(99999999999)\\/\",\ - \"amount\":\ - {\"currency\":\"EUR\",\ - \"value\":5,\ - \"fraction\":0},\ - \"summary\": \"merchant-lib testcase\",\ - \"products\": [ {\"description\":\"ice cream\",\ - \"value\":\"{EUR:5}\"} ] }", - NULL), - - /** * End the suite. Fixme: better to have a label for this * too, as it shows a "(null)" token on logs.