diff options
Diffstat (limited to 'src/testing/testing_api_cmd_tip_query.c')
-rw-r--r-- | src/testing/testing_api_cmd_tip_query.c | 292 |
1 files changed, 0 insertions, 292 deletions
diff --git a/src/testing/testing_api_cmd_tip_query.c b/src/testing/testing_api_cmd_tip_query.c deleted file mode 100644 index 27a82a99..00000000 --- a/src/testing/testing_api_cmd_tip_query.c +++ /dev/null @@ -1,292 +0,0 @@ -/* - This file is part of TALER - Copyright (C) 2014-2018 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 - published by the Free Software Foundation; either version 3, or - (at your option) any later version. - - TALER is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public - License along with TALER; see the file COPYING. If not, see - <http://www.gnu.org/licenses/> -*/ - -/** - * @file lib/testing_api_cmd_tip_query.c - * @brief command to test the tipping. - * @author Marcello Stanisci - */ - -#include "platform.h" -#include <taler/taler_exchange_service.h> -#include <taler/taler_testing_lib.h> -#include "taler_merchant_service.h" -#include "taler_merchant_testing_lib.h" - - -/** - * State for a /tip-query CMD. - */ -struct TipQueryState -{ - - /** - * The merchant base URL. - */ - const char *merchant_url; - - /** - * Expected HTTP response code for this CMD. - */ - unsigned int http_status; - - /** - * The handle to the current /tip-query request. - */ - struct TALER_MERCHANT_TipGetHandle *tqo; - - /** - * The interpreter state. - */ - struct TALER_TESTING_Interpreter *is; - - /** - * Expected amount to be picked up. - */ - const char *expected_amount_picked_up; - - /** - * Expected amount to be tip-authorized. - */ - const char *expected_amount_authorized; - - /** - * Amount that is expected to be still available - * from the tip reserve. - */ - const char *expected_amount_available; -}; - - -/** - * Callback to process a GET /tip-query request, it mainly - * checks that what the backend returned matches the command's - * expectations. - * - * @param cls closure - * @param hr HTTP response - * @param reserve_expiration when the tip reserve will expire - * @param exchange_url from where to pick up the tip - * @param amount_remaining how much is remaining - */ -static void -tip_query_cb (void *cls, - const struct TALER_MERCHANT_HttpResponse *hr, - struct GNUNET_TIME_Absolute reserve_expiration, - const char *exchange_url, - struct TALER_Amount *amount_remaining) -{ - struct TipQueryState *tqs = cls; - - tqs->tqo = NULL; - GNUNET_log (GNUNET_ERROR_TYPE_INFO, - "Tip query callback at command `%s'\n", - TALER_TESTING_interpreter_get_current_label (tqs->is)); -#if FIXME_LATER - if (tqs->expected_amount_available) - { - struct TALER_Amount a; - - GNUNET_assert (GNUNET_OK == - TALER_string_to_amount (tqs->expected_amount_available, - &a)); - { - char *str; - - str = TALER_amount_to_string (amount_available); - TALER_LOG_INFO ("expected available %s, actual %s\n", - TALER_amount2s (&a), - str); - GNUNET_free (str); - } - if (0 != - TALER_amount_cmp (amount_available, - &a)) - TALER_TESTING_FAIL (tqs->is); - } - - if (tqs->expected_amount_authorized) - { - struct TALER_Amount a; - char *str; - - GNUNET_assert (GNUNET_OK == - TALER_string_to_amount (tqs->expected_amount_authorized, - &a)); - str = TALER_amount_to_string (amount_authorized); - TALER_LOG_INFO ("expected authorized %s, actual %s\n", - TALER_amount2s (&a), - str); - GNUNET_free (str); - if (0 != - TALER_amount_cmp (amount_authorized, - &a)) - TALER_TESTING_FAIL (tqs->is); - } - - if (tqs->expected_amount_picked_up) - { - struct TALER_Amount a; - char *str; - - GNUNET_assert (GNUNET_OK == - TALER_string_to_amount (tqs->expected_amount_picked_up, - &a)); - str = TALER_amount_to_string (amount_picked_up); - TALER_LOG_INFO ("expected picked_up %s, actual %s\n", - TALER_amount2s (&a), - str); - GNUNET_free (str); - if (0 != - TALER_amount_cmp (amount_picked_up, - &a)) - TALER_TESTING_FAIL (tqs->is); - } -#endif - if (tqs->http_status != hr->http_status) - TALER_TESTING_FAIL (tqs->is); - TALER_TESTING_interpreter_next (tqs->is); -} - - -/** - * Free the state from a /tip-query CMD, and possibly cancel - * a pending /tip-query request. - * - * @param cls closure. - * @param cmd the /tip-query CMD to free. - */ -static void -tip_query_cleanup (void *cls, - const struct TALER_TESTING_Command *cmd) -{ - struct TipQueryState *tqs = cls; - - if (NULL != tqs->tqo) - { - TALER_LOG_WARNING ("Tip-query operation did not complete\n"); - TALER_MERCHANT_tip_get_cancel (tqs->tqo); - } - GNUNET_free (tqs); -} - - -/** - * Run a /tip-query CMD. - * - * @param cls closure. - * @param cmd the current /tip-query CMD. - * @param is the interpreter state. - */ -static void -tip_query_run (void *cls, - const struct TALER_TESTING_Command *cmd, - struct TALER_TESTING_Interpreter *is) -{ - struct TipQueryState *tqs = cls; - struct GNUNET_HashCode tip_id; // FIXME: big bad bug, need to pass this in. Done like this just to quickly fix FTBFS! - - tqs->is = is; - tqs->tqo = TALER_MERCHANT_tip_get (is->ctx, - tqs->merchant_url, - &tip_id, - &tip_query_cb, - tqs); - GNUNET_assert (NULL != tqs->tqo); -} - - -/** - * Define a /tip-query CMD equipped with a expected amount. - * - * @param label the command label - * @param merchant_url base URL of the merchant which will - * server the /tip-query request. - * @param http_status expected HTTP response code for the - * /tip-query request. - * @param expected_amount_picked_up expected amount already - * picked up. - * @param expected_amount_authorized expected amount that was - * authorized in the first place. - * @param expected_amount_available expected amount which is - * still available from the tip reserve - * @return the command - */ -struct TALER_TESTING_Command -TALER_TESTING_cmd_tip_query_with_amounts (const char *label, - const char *merchant_url, - unsigned int http_status, - const char *expected_amount_picked_up, - const char *expected_amount_authorized, - const char *expected_amount_available) -{ - struct TipQueryState *tqs; - - tqs = GNUNET_new (struct TipQueryState); - tqs->merchant_url = merchant_url; - tqs->http_status = http_status; - tqs->expected_amount_picked_up = expected_amount_picked_up; - tqs->expected_amount_authorized = expected_amount_authorized; - tqs->expected_amount_available = expected_amount_available; - { - struct TALER_TESTING_Command cmd = { - .cls = tqs, - .label = label, - .run = &tip_query_run, - .cleanup = &tip_query_cleanup - }; - - return cmd; - } -} - - -/** - * Define a /tip-query CMD. - * - * @param label the command label - * @param merchant_url base URL of the merchant which will - * server the /tip-query request. - * @param http_status expected HTTP response code for the - * /tip-query request. - */ -struct TALER_TESTING_Command -TALER_TESTING_cmd_tip_query (const char *label, - const char *merchant_url, - unsigned int http_status) -{ - struct TipQueryState *tqs; - - tqs = GNUNET_new (struct TipQueryState); - tqs->merchant_url = merchant_url; - tqs->http_status = http_status; - { - struct TALER_TESTING_Command cmd = { - .cls = tqs, - .label = label, - .run = &tip_query_run, - .cleanup = &tip_query_cleanup - }; - - return cmd; - } -} - - -/* end of testing_api_cmd_tip_query.c */ |