exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

commit 3817f83dd5b65fb7d475560b2637276a89f69087
parent 25e530f37a09dd154d09e468cc724252524da6c6
Author: Christian Grothoff <christian@grothoff.org>
Date:   Sun, 17 May 2015 16:53:00 +0200

adding testcase for json-amount conversions, fixing typos and missing currency initialization

Diffstat:
Msrc/util/json.c | 5++++-
Msrc/util/test_json.c | 25+++++++++++++++++++++++++
2 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/src/util/json.c b/src/util/json.c @@ -227,10 +227,13 @@ TALER_json_to_amount (json_t *json, &error, JSON_STRICT, "{s:s, s:I, s:I}", - "curreny", &currency, + "currency", &currency, "value", &value, "fraction", &fraction)); EXITIF (3 < strlen (currency)); + EXITIF (TALER_CURRENCY_LEN <= strlen (currency)); + strcpy (r_amount->currency, + currency); r_amount->value = (uint32_t) value; r_amount->fraction = (uint32_t) fraction; return GNUNET_OK; diff --git a/src/util/test_json.c b/src/util/test_json.c @@ -24,6 +24,29 @@ #include "taler_json_lib.h" +static int +test_amount () +{ + json_t *j; + struct TALER_Amount a1; + struct TALER_Amount a2; + + GNUNET_assert (GNUNET_OK == + TALER_string_to_amount ("EUR:4.3", + &a1)); + j = TALER_json_from_amount (&a1); + GNUNET_assert (NULL != j); + GNUNET_assert (GNUNET_OK == + TALER_json_to_amount (j, + &a2)); + GNUNET_assert (0 == + TALER_amount_cmp (&a1, + &a2)); + json_decref (j); + return 0; +} + + int main(int argc, const char *const argv[]) @@ -31,6 +54,8 @@ main(int argc, GNUNET_log_setup ("test-json", "WARNING", NULL); + if (0 != test_amount ()) + return 1; /* FIXME: implement test... */ return 0; }