diff options
Diffstat (limited to 'src/testing/testing_api_traits.c')
-rw-r--r-- | src/testing/testing_api_traits.c | 82 |
1 files changed, 67 insertions, 15 deletions
diff --git a/src/testing/testing_api_traits.c b/src/testing/testing_api_traits.c index 6d623af7a..799ae6718 100644 --- a/src/testing/testing_api_traits.c +++ b/src/testing/testing_api_traits.c @@ -1,6 +1,6 @@ /* This file is part of TALER - Copyright (C) 2018 Taler Systems SA + Copyright (C) 2018, 2021 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,11 @@ #include "taler_testing_lib.h" +TALER_TESTING_SIMPLE_TRAITS (TALER_TESTING_MAKE_IMPL_SIMPLE_TRAIT) + +TALER_TESTING_INDEXED_TRAITS (TALER_TESTING_MAKE_IMPL_INDEXED_TRAIT) + + /** * End a trait array. Usually, commands offer several traits, * and put them in arrays. @@ -46,16 +51,7 @@ TALER_TESTING_trait_end () } -/** - * Pick the chosen trait from the traits array. - * - * @param traits the traits array. - * @param ret where to store the result. - * @param trait type of the trait to extract. - * @param index index number of the object to extract. - * @return #GNUNET_OK if no error occurred, #GNUNET_SYSERR otherwise. - */ -int +enum GNUNET_GenericReturnValue TALER_TESTING_get_trait (const struct TALER_TESTING_Trait *traits, const void **ret, const char *trait, @@ -63,19 +59,75 @@ TALER_TESTING_get_trait (const struct TALER_TESTING_Trait *traits, { for (unsigned int i = 0; NULL != traits[i].trait_name; i++) { - if ( (0 == strcmp (trait, traits[i].trait_name)) && + if ( (0 == strcmp (trait, + traits[i].trait_name)) && (index == traits[i].index) ) { *ret = (void *) traits[i].ptr; return GNUNET_OK; } } - GNUNET_log (GNUNET_ERROR_TYPE_INFO, + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Trait %s/%u not found.\n", - trait, index); - + trait, + index); return GNUNET_SYSERR; } +const char * +TALER_TESTING_get_exchange_url (struct TALER_TESTING_Interpreter *is) +{ + const char *exchange_url; + const struct TALER_TESTING_Command *exchange_cmd; + + exchange_cmd + = TALER_TESTING_interpreter_get_command (is, + "exchange"); + if (NULL == exchange_cmd) + { + GNUNET_break (0); + TALER_TESTING_interpreter_fail (is); + return NULL; + } + if (GNUNET_OK != + TALER_TESTING_get_trait_exchange_url (exchange_cmd, + &exchange_url)) + { + GNUNET_break (0); + TALER_TESTING_interpreter_fail (is); + return NULL; + } + return exchange_url; +} + + +struct TALER_EXCHANGE_Keys * +TALER_TESTING_get_keys ( + struct TALER_TESTING_Interpreter *is) +{ + struct TALER_EXCHANGE_Keys *keys; + const struct TALER_TESTING_Command *exchange_cmd; + + exchange_cmd + = TALER_TESTING_interpreter_get_command (is, + "exchange"); + if (NULL == exchange_cmd) + { + GNUNET_break (0); + TALER_TESTING_interpreter_fail (is); + return NULL; + } + if (GNUNET_OK != + TALER_TESTING_get_trait_keys (exchange_cmd, + &keys)) + { + GNUNET_break (0); + TALER_TESTING_interpreter_fail (is); + return NULL; + } + return keys; +} + + /* end of testing_api_traits.c */ |