aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2024-06-16 09:18:57 +0200
committerChristian Grothoff <christian@grothoff.org>2024-06-16 09:18:57 +0200
commit23f3f1aaadb448f520c45216645f160557a9658a (patch)
tree8dca188994a2677eebd186dbe86ef582de72572b
parent629448f16c69a90cc84c72f131596aac4aea45e1 (diff)
fix test by specifying rounding
-rw-r--r--src/backend/taler-merchant-httpd_private-post-token-families.c53
-rwxr-xr-xsrc/testing/test_merchant_order_creation.sh2
2 files changed, 37 insertions, 18 deletions
diff --git a/src/backend/taler-merchant-httpd_private-post-token-families.c b/src/backend/taler-merchant-httpd_private-post-token-families.c
index 069f6b29..1fbbc44e 100644
--- a/src/backend/taler-merchant-httpd_private-post-token-families.c
+++ b/src/backend/taler-merchant-httpd_private-post-token-families.c
@@ -1,6 +1,6 @@
/*
This file is part of TALER
- (C) 2023 Taler Systems SA
+ (C) 2023, 2024 Taler Systems SA
TALER is free software; you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
@@ -88,7 +88,6 @@ TMH_private_post_token_families (const struct TMH_RequestHandler *rh,
GNUNET_JSON_spec_json ("description_i18n",
&details.description_i18n),
NULL),
- GNUNET_JSON_spec_string ("kind", &kind),
GNUNET_JSON_spec_mark_optional (
GNUNET_JSON_spec_timestamp ("valid_after",
&details.valid_after),
@@ -99,8 +98,12 @@ TMH_private_post_token_families (const struct TMH_RequestHandler *rh,
&details.duration),
GNUNET_JSON_spec_relative_time ("rounding",
&details.rounding),
+ GNUNET_JSON_spec_string ("kind",
+ &kind),
GNUNET_JSON_spec_end ()
};
+ struct GNUNET_TIME_Timestamp now
+ = GNUNET_TIME_timestamp_get ();
GNUNET_assert (NULL != mi);
{
@@ -117,15 +120,13 @@ TMH_private_post_token_families (const struct TMH_RequestHandler *rh,
: MHD_NO;
}
}
-
- struct GNUNET_TIME_Timestamp now = GNUNET_TIME_timestamp_get ();
-
- if (no_valid_after) {
+ if (no_valid_after)
details.valid_after = now;
- }
/* Ensure that valid_after is before valid_before */
- if (GNUNET_TIME_timestamp_cmp (details.valid_after, >=, details.valid_before))
+ if (GNUNET_TIME_timestamp_cmp (details.valid_after,
+ >=,
+ details.valid_before))
{
GNUNET_break (0);
GNUNET_JSON_parse_free (spec);
@@ -136,7 +137,9 @@ TMH_private_post_token_families (const struct TMH_RequestHandler *rh,
}
/* Ensure that valid_after is not in the past */
- if (GNUNET_TIME_timestamp_cmp (details.valid_after, <, now))
+ if (GNUNET_TIME_timestamp_cmp (details.valid_after,
+ <,
+ now))
{
GNUNET_break (0);
GNUNET_JSON_parse_free (spec);
@@ -146,9 +149,13 @@ TMH_private_post_token_families (const struct TMH_RequestHandler *rh,
"valid_after");
}
- if (strcmp (kind, "discount") == 0)
+ if (0 ==
+ strcmp (kind,
+ "discount"))
details.kind = TALER_MERCHANTDB_TFK_Discount;
- else if (strcmp (kind, "subscription") == 0)
+ else if (0 ==
+ strcmp (kind,
+ "subscription"))
details.kind = TALER_MERCHANTDB_TFK_Subscription;
else
{
@@ -173,17 +180,29 @@ TMH_private_post_token_families (const struct TMH_RequestHandler *rh,
"description_i18n");
}
- if ( GNUNET_TIME_relative_cmp (GNUNET_TIME_UNIT_YEARS, !=, details.rounding) &&
- GNUNET_TIME_relative_cmp (GNUNET_TIME_UNIT_MONTHS, !=, details.rounding) &&
- GNUNET_TIME_relative_cmp (GNUNET_TIME_UNIT_DAYS, !=, details.rounding) &&
- GNUNET_TIME_relative_cmp (GNUNET_TIME_UNIT_HOURS, !=, details.rounding) &&
- GNUNET_TIME_relative_cmp (GNUNET_TIME_UNIT_MINUTES, !=, details.rounding) )
+ if (GNUNET_TIME_relative_cmp (GNUNET_TIME_UNIT_YEARS,
+ !=,
+ details.rounding) &&
+ GNUNET_TIME_relative_cmp (GNUNET_TIME_UNIT_MONTHS,
+ !=,
+ details.rounding) &&
+ GNUNET_TIME_relative_cmp (GNUNET_TIME_UNIT_DAYS,
+ !=,
+ details.rounding) &&
+ GNUNET_TIME_relative_cmp (GNUNET_TIME_UNIT_HOURS,
+ !=,
+ details.rounding) &&
+ GNUNET_TIME_relative_cmp (GNUNET_TIME_UNIT_MINUTES,
+ !=,
+ details.rounding)
+ )
{
GNUNET_break (0);
GNUNET_JSON_parse_free (spec);
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Received invalid rounding value: %s\n",
- GNUNET_STRINGS_relative_time_to_string (details.rounding, GNUNET_YES));
+ GNUNET_STRINGS_relative_time_to_string (details.rounding,
+ true));
return TALER_MHD_reply_with_error (connection,
MHD_HTTP_BAD_REQUEST,
TALER_EC_GENERIC_PARAMETER_MALFORMED,
diff --git a/src/testing/test_merchant_order_creation.sh b/src/testing/test_merchant_order_creation.sh
index 1b52b4af..244dacdc 100755
--- a/src/testing/test_merchant_order_creation.sh
+++ b/src/testing/test_merchant_order_creation.sh
@@ -250,7 +250,7 @@ echo -n "Creating token family ..."
NOW=$(date +%s)
IN_A_YEAR=$((NOW + 31536000))
STATUS=$(curl 'http://localhost:9966/private/tokenfamilies' \
- -d '{"slug":"test-sub","kind":"subscription","description":"Test token family","name":"Test Subscription","valid_after":{"t_s":'$NOW'},"valid_before":{"t_s":'$IN_A_YEAR'},"duration": {"d_us": 2592000000000}}' \
+ -d '{"slug":"test-sub","kind":"subscription","description":"Test token family","name":"Test Subscription","valid_after":{"t_s":'${NOW}'},"valid_before":{"t_s":'${IN_A_YEAR}'},"duration": {"d_us": 2592000000000},"rounding": {"d_us": 86400000000}}' \
-w "%{http_code}" -s -o "$LAST_RESPONSE")
if [ "$STATUS" != "204" ]