-expand p2p test to cover purse-with-deposit-merge sequence

This commit is contained in:
Christian Grothoff 2022-04-23 19:32:07 +02:00
parent b054c969cb
commit e270bc32cc
No known key found for this signature in database
GPG Key ID: 939E6BE1E29FC3CC
3 changed files with 28 additions and 14 deletions

View File

@ -2366,7 +2366,6 @@ TALER_TESTING_cmd_oauth (const char *label,
*
* @param label command label
* @param expected_http_status what HTTP status do we expect to get returned from the exchange
* @param target_amount amount for the purse to be full, without fees
* @param contract_terms contract, JSON string
* @param upload_contract should we upload the contract
* @param purse_expiration how long until the purse expires
@ -2377,7 +2376,6 @@ struct TALER_TESTING_Command
TALER_TESTING_cmd_purse_create_with_deposit (
const char *label,
unsigned int expected_http_status,
const char *target_amount,
const char *contract_terms,
bool upload_contract,
struct GNUNET_TIME_Relative purse_expiration,

View File

@ -151,14 +151,25 @@ run (void *cls,
/**
* Spend the coin.
*/
TALER_TESTING_cmd_deposit ("deposit-simple",
"withdraw-coin-1",
0,
bc.user42_payto,
"{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}",
GNUNET_TIME_UNIT_ZERO,
"EUR:5",
MHD_HTTP_OK),
TALER_TESTING_cmd_purse_create_with_deposit (
"purse-with-deposit",
MHD_HTTP_OK,
"{\"amount\":\"EUR:1\",\"summary\":\"ice cream\"}",
true, /* upload contract */
GNUNET_TIME_UNIT_MINUTES, /* expiration */
"withdraw-coin-1",
"EUR:1", /* FIXME: check amount vs. fees! */
NULL),
TALER_TESTING_cmd_contract_get (
"purse-get-contract",
MHD_HTTP_OK,
"purse-with-deposit"),
TALER_TESTING_cmd_purse_merge (
"purse-merge-into-reserve",
MHD_HTTP_OK,
"purse-get-contract",
"create-reserve-1"),
// FIXME: check reserve history!
TALER_TESTING_cmd_end ()
};

View File

@ -355,13 +355,13 @@ struct TALER_TESTING_Command
TALER_TESTING_cmd_purse_create_with_deposit (
const char *label,
unsigned int expected_http_status,
const char *target_amount,
const char *contract_terms,
bool upload_contract,
struct GNUNET_TIME_Relative purse_expiration,
...)
{
struct PurseCreateDepositState *ds;
struct GNUNET_TIME_Timestamp pay_deadline;
ds = GNUNET_new (struct PurseCreateDepositState);
ds->rel_expiration = purse_expiration;
@ -378,6 +378,14 @@ TALER_TESTING_cmd_purse_create_with_deposit (
label);
GNUNET_assert (0);
}
pay_deadline =
GNUNET_TIME_absolute_to_timestamp (
GNUNET_TIME_relative_to_absolute (purse_expiration));
GNUNET_assert (0 ==
json_object_set_new (
ds->contract_terms,
"pay_deadline",
GNUNET_JSON_from_timestamp (pay_deadline)));
{
va_list ap;
unsigned int i;
@ -410,9 +418,6 @@ TALER_TESTING_cmd_purse_create_with_deposit (
}
va_end (ap);
}
GNUNET_assert (GNUNET_OK ==
TALER_string_to_amount (target_amount,
&ds->target_amount));
{
struct TALER_TESTING_Command cmd = {
.cls = ds,