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

This commit is contained in:
Christian Grothoff 2015-05-17 16:53:00 +02:00
parent 25e530f37a
commit 3817f83dd5
2 changed files with 29 additions and 1 deletions

View File

@ -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;

View File

@ -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;
}