aboutsummaryrefslogtreecommitdiff
path: root/src/util/test_wireformats.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2015-05-17 17:57:31 +0200
committerChristian Grothoff <christian@grothoff.org>2015-05-17 17:57:31 +0200
commitcdc0f43f359821b12faa74f9823ba091c2897ee3 (patch)
tree087d194495f63e32146343ac33c000b9b551f06c /src/util/test_wireformats.c
parent9896e8e96ac00a1599216ae30fed76a1ec18ce15 (diff)
slightly expand wireformat test to cover error cases
Diffstat (limited to 'src/util/test_wireformats.c')
-rw-r--r--src/util/test_wireformats.c55
1 files changed, 47 insertions, 8 deletions
diff --git a/src/util/test_wireformats.c b/src/util/test_wireformats.c
index 26ec4b79f..ebb96604c 100644
--- a/src/util/test_wireformats.c
+++ b/src/util/test_wireformats.c
@@ -24,7 +24,8 @@
#include "taler_util.h"
#include "taler_json_lib.h"
-static const char * const json_wire_str =
+/* Valid SEPA data */
+static const char * const valid_wire_str =
"{ \"type\":\"SEPA\", \
\"IBAN\":\"DE67830654080004822650\", \
\"name\":\"GNUnet e.V.\", \
@@ -33,7 +34,40 @@ static const char * const json_wire_str =
\"r\":123456789, \
\"address\": \"foobar\"}";
-int main(int argc, const char *const argv[])
+/* IBAN has wrong country code */
+static const char * const invalid_wire_str =
+ "{ \"type\":\"SEPA\", \
+\"IBAN\":\"XX67830654080004822650\", \
+\"name\":\"GNUnet e.V.\", \
+\"bic\":\"GENODEF1SLR\", \
+\"edate\":\"1449930207000\", \
+\"r\":123456789, \
+\"address\": \"foobar\"}";
+
+/* IBAN has wrong checksum */
+static const char * const invalid_wire_str2 =
+ "{ \"type\":\"SEPA\", \
+\"IBAN\":\"DE67830654080004822651\", \
+\"name\":\"GNUnet e.V.\", \
+\"bic\":\"GENODEF1SLR\", \
+\"edate\":\"1449930207000\", \
+\"r\":123456789, \
+\"address\": \"foobar\"}";
+
+/* Unsupported wireformat type */
+static const char * const unsupported_wire_str =
+ "{ \"type\":\"unsupported\", \
+\"IBAN\":\"DE67830654080004822650\", \
+\"name\":\"GNUnet e.V.\", \
+\"bic\":\"GENODEF1SLR\", \
+\"edate\":\"1449930207000\", \
+\"r\":123456789, \
+\"address\": \"foobar\"}";
+
+
+int
+main(int argc,
+ const char *const argv[])
{
json_t *wire;
json_error_t error;
@@ -41,13 +75,18 @@ int main(int argc, const char *const argv[])
GNUNET_log_setup ("test-json-validations", "WARNING", NULL);
(void) memset(&error, 0, sizeof(error));
- wire = json_loads (json_wire_str, 0, &error);
- if (NULL == wire)
- {
- TALER_json_warn (error);
- return 2;
- }
+ GNUNET_assert (NULL != (wire = json_loads (unsupported_wire_str, 0, NULL)));
+ GNUNET_assert (1 != TALER_json_validate_wireformat ("unsupported", wire));
+ json_decref (wire);
+ GNUNET_assert (NULL != (wire = json_loads (invalid_wire_str, 0, NULL)));
+ GNUNET_assert (1 != TALER_json_validate_wireformat ("SEPA", wire));
+ json_decref (wire);
+ GNUNET_assert (NULL != (wire = json_loads (invalid_wire_str2, 0, NULL)));
+ GNUNET_assert (1 != TALER_json_validate_wireformat ("SEPA", wire));
+ json_decref (wire);
+ GNUNET_assert (NULL != (wire = json_loads (valid_wire_str, 0, &error)));
ret = TALER_json_validate_wireformat ("SEPA", wire);
+ json_decref (wire);
if (1 == ret)
return 0;
return 1;