-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 label command label
* @param expected_http_status what HTTP status do we expect to get returned from the exchange * @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 contract_terms contract, JSON string
* @param upload_contract should we upload the contract * @param upload_contract should we upload the contract
* @param purse_expiration how long until the purse expires * @param purse_expiration how long until the purse expires
@ -2377,7 +2376,6 @@ struct TALER_TESTING_Command
TALER_TESTING_cmd_purse_create_with_deposit ( TALER_TESTING_cmd_purse_create_with_deposit (
const char *label, const char *label,
unsigned int expected_http_status, unsigned int expected_http_status,
const char *target_amount,
const char *contract_terms, const char *contract_terms,
bool upload_contract, bool upload_contract,
struct GNUNET_TIME_Relative purse_expiration, struct GNUNET_TIME_Relative purse_expiration,

View File

@ -151,14 +151,25 @@ run (void *cls,
/** /**
* Spend the coin. * Spend the coin.
*/ */
TALER_TESTING_cmd_deposit ("deposit-simple", 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", "withdraw-coin-1",
0, "EUR:1", /* FIXME: check amount vs. fees! */
bc.user42_payto, NULL),
"{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}", TALER_TESTING_cmd_contract_get (
GNUNET_TIME_UNIT_ZERO, "purse-get-contract",
"EUR:5", MHD_HTTP_OK,
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 () TALER_TESTING_cmd_end ()
}; };

View File

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