diff options
author | Jeff Burdges <burdges@gnunet.org> | 2016-05-02 11:27:31 +0200 |
---|---|---|
committer | Jeff Burdges <burdges@gnunet.org> | 2016-05-02 11:27:31 +0200 |
commit | 025fbdb41aa8783570079915283494d1005533f6 (patch) | |
tree | bd63843c100648ee0559f103e5092d94cd03d65c /src/bank-lib/test_bank_interpreter.h | |
parent | 6cdc5f3a420593eeac3256d69bd5cecc8940f1db (diff) | |
parent | 5852baa7e97f5f5313747f1da1c4583f33b90d55 (diff) |
Merge branch 'master' of git.taler.net:/var/git/exchange
Diffstat (limited to 'src/bank-lib/test_bank_interpreter.h')
-rw-r--r-- | src/bank-lib/test_bank_interpreter.h | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/src/bank-lib/test_bank_interpreter.h b/src/bank-lib/test_bank_interpreter.h new file mode 100644 index 00000000..f5498697 --- /dev/null +++ b/src/bank-lib/test_bank_interpreter.h @@ -0,0 +1,127 @@ +/* + This file is part of TALER + Copyright (C) 2016 GNUnet e.V. + + 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, If not, see <http://www.gnu.org/licenses/> +*/ +/** + * @file bank/test_bank_interpreter.h + * @brief interpreter for tests of the bank's HTTP API interface + * @author Christian Grothoff + */ +#ifndef TEST_BANK_INTERPRETER_H +#define TEST_BANK_INTERPRETER_H + +#include "taler_util.h" +#include "taler_signatures.h" +#include "taler_bank_service.h" +#include <gnunet/gnunet_util_lib.h> +#include <gnunet/gnunet_curl_lib.h> +#include <microhttpd.h> + + +/** + * Opcodes for the interpreter. + */ +enum TBI_OpCode +{ + /** + * Termination code, stops the interpreter loop (with success). + */ + TBI_OC_END = 0, + + /** + * Add funds to a reserve by (faking) incoming wire transfer. + */ + TBI_OC_ADMIN_ADD_INCOMING + +}; + + +/** + * Details for a bank operation to execute. + */ +struct TBI_Command +{ + /** + * Opcode of the command. + */ + enum TBI_OpCode oc; + + /** + * Label for the command, can be NULL. + */ + const char *label; + + /** + * Which response code do we expect for this command? + */ + unsigned int expected_response_code; + + /** + * Details about the command. + */ + union + { + + /** + * Information for a #TBI_OC_ADMIN_ADD_INCOMING command. + */ + struct + { + + /** + * String describing the amount to add to the reserve. + */ + const char *amount; + + /** + * Credited account number. + */ + uint64_t credit_account_no; + + /** + * Debited account number. + */ + uint64_t debit_account_no; + + /** + * Wire transfer identifier to use. Initialized to + * a random value. + */ + struct TALER_WireTransferIdentifierRawP wtid; + + /** + * Set to the API's handle during the operation. + */ + struct TALER_BANK_AdminAddIncomingHandle *aih; + + } admin_add_incoming; + + } details; + +}; + + +/** + * Entry point to the interpeter. + * + * @param resultp where to store the final result + * @param run_bank #GNUNET_YES to run the fakebank + * @param commands list of commands to run + */ +void +TBI_run_interpreter (int *resultp, + int run_bank, + struct TBI_Command *commands); + +#endif |