aboutsummaryrefslogtreecommitdiff
path: root/src/include/taler_testing_lib.h
diff options
context:
space:
mode:
authorMarcello Stanisci <stanisci.m@gmail.com>2018-02-22 14:51:12 +0100
committerMarcello Stanisci <stanisci.m@gmail.com>2018-02-26 14:12:46 +0100
commitb593d416d6e788b2053c2f5ebb634e0bb39fe560 (patch)
treecf08a83fb1922c32d4a0e4ce161ae3ff20023a69 /src/include/taler_testing_lib.h
parent8d5cc9f550da58610ad220d72f21d930c47ad0a8 (diff)
downloadexchange-b593d416d6e788b2053c2f5ebb634e0bb39fe560.tar.xz
Bank-lib tests, using the new (libraries-based) style.
Diffstat (limited to 'src/include/taler_testing_lib.h')
-rw-r--r--src/include/taler_testing_lib.h108
1 files changed, 103 insertions, 5 deletions
diff --git a/src/include/taler_testing_lib.h b/src/include/taler_testing_lib.h
index b4350e0c3..d06105dd1 100644
--- a/src/include/taler_testing_lib.h
+++ b/src/include/taler_testing_lib.h
@@ -27,6 +27,7 @@
#define TALER_TESTING_LIB_H
#include "taler_util.h"
+#include "taler_exchange_service.h"
#include <gnunet/gnunet_json_lib.h>
#include "taler_json_lib.h"
#include <microhttpd.h>
@@ -35,6 +36,37 @@
/* ********************* Helper functions ********************* */
/**
+ * Print failing line number and trigger shutdown. Useful
+ * quite any time after the command "run" method has been called.
+ */
+#define TALER_TESTING_FAIL(is) \
+ do \
+ {\
+ GNUNET_break (0); \
+ TALER_TESTING_interpreter_fail (is); \
+ return; \
+ } while (0)
+
+
+#define TALER_TESTING_GET_TRAIT_CREDIT_ACCOUNT(cmd,out) \
+ TALER_TESTING_get_trait_uint64 (cmd, 0, out)
+
+#define TALER_TESTING_MAKE_TRAIT_CREDIT_ACCOUNT(data) \
+ TALER_TESTING_make_trait_uint64 (0, data)
+
+#define TALER_TESTING_GET_TRAIT_DEBIT_ACCOUNT(cmd,out) \
+ TALER_TESTING_get_trait_uint64 (cmd, 1, out)
+
+#define TALER_TESTING_MAKE_TRAIT_DEBIT_ACCOUNT(data) \
+ TALER_TESTING_make_trait_uint64 (1, data)
+
+#define TALER_TESTING_GET_TRAIT_ROW_ID(cmd,out) \
+ TALER_TESTING_get_trait_uint64 (cmd, 3, out)
+
+#define TALER_TESTING_MAKE_TRAIT_ROW_ID(data) \
+ TALER_TESTING_make_trait_uint64 (3, data)
+
+/**
* Allocate and return a piece of wire-details. Mostly, it adds
* the bank_url to the JSON.
*
@@ -747,8 +779,16 @@ TALER_TESTING_cmd_check_bank_transfer
(const char *label,
const char *exchange_base_url,
const char *amount,
- unsigned int debit_account,
- unsigned int credit_account);
+ uint64_t debit_account,
+ uint64_t credit_account);
+
+/**
+ * FIXME.
+ */
+struct TALER_TESTING_Command
+TALER_TESTING_cmd_check_bank_transfer_with_ref
+ (const char *label,
+ const char *deposit_reference);
/**
* Check bank's balance is zero.
@@ -1017,6 +1057,33 @@ TALER_TESTING_make_trait_denom_sig
(unsigned int index,
const struct TALER_DenominationSignature *sig);
+
+/**
+ * @param selector associate the object with this "tag"
+ * @param i which object should be returned
+ *
+ * @return the trait, to be put in the traits array of the command
+ */
+struct TALER_TESTING_Trait
+TALER_TESTING_make_trait_uint64
+ (unsigned int index,
+ const uint64_t *i);
+
+/**
+ * Obtain a "number" value from @a cmd.
+ *
+ * @param cmd command to extract trait from
+ * @param selector which coin to pick if @a cmd has multiple on
+ * offer
+ * @param n[out] set to the number coming from @a cmd.
+ * @return #GNUNET_OK on success
+ */
+int
+TALER_TESTING_get_trait_uint64
+ (const struct TALER_TESTING_Command *cmd,
+ unsigned int index,
+ const uint64_t **n);
+
/**
* @param selector associate the object with this "tag"
* @param i which object should be returned
@@ -1225,7 +1292,7 @@ int
TALER_TESTING_get_trait_transfer_subject
(const struct TALER_TESTING_Command *cmd,
unsigned int index,
- char **transfer_subject);
+ const char **transfer_subject);
/**
@@ -1239,7 +1306,7 @@ TALER_TESTING_get_trait_transfer_subject
struct TALER_TESTING_Trait
TALER_TESTING_make_trait_transfer_subject
(unsigned int index,
- char *transfer_subject);
+ const char *transfer_subject);
/**
@@ -1369,11 +1436,42 @@ int
TALER_TESTING_get_trait_amount_obj (
const struct TALER_TESTING_Command *cmd,
unsigned int index,
- struct TALER_Amount **amount);
+ const struct TALER_Amount **amount);
struct TALER_TESTING_Trait
TALER_TESTING_make_trait_amount_obj (
unsigned int index,
const struct TALER_Amount *amount);
+
+/**
+ * Offer reference to a bank transfer which has been
+ * rejected.
+ *
+ * @param index which reference is to be picked, in case
+ * multiple are offered.
+ * @param rejected_reference the url to offer
+ * @return the trait, to be put in the traits array of the command
+ */
+struct TALER_TESTING_Trait
+TALER_TESTING_make_trait_rejected
+ (unsigned int index,
+ const char *rejected);
+
+/**
+ * Obtain the reference from a bank transfer which has
+ * been rejected.
+ *
+ * @param cmd command to extract trait from
+ * @param index which reference is to be picked, in case
+ * multiple are offered.
+ * @param rejected_reference[out] where to write the order id.
+ * @return #GNUNET_OK on success
+ */
+int
+TALER_TESTING_get_trait_rejected
+ (const struct TALER_TESTING_Command *cmd,
+ unsigned int index,
+ const char **rejected_reference);
+
#endif