aboutsummaryrefslogtreecommitdiff
path: root/src/util/test_json_validations.c
diff options
context:
space:
mode:
authorSree Harsha Totakura <sreeharsha@totakura.in>2015-02-17 17:23:13 +0100
committerSree Harsha Totakura <sreeharsha@totakura.in>2015-02-17 17:29:43 +0100
commitbea425de6cbbfb054a19e0f2312c5ef00c2e1bbe (patch)
treef0c5b1b1d1a1df235555dd5ed3a1a624bd3c8886 /src/util/test_json_validations.c
parent2f51cd3e3ec8a439e54be154a0c5b639483fb919 (diff)
Fix #3624: Check JSON format for wire deposits (SEPA specification)
Diffstat (limited to 'src/util/test_json_validations.c')
-rw-r--r--src/util/test_json_validations.c54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/util/test_json_validations.c b/src/util/test_json_validations.c
new file mode 100644
index 000000000..a5747c94a
--- /dev/null
+++ b/src/util/test_json_validations.c
@@ -0,0 +1,54 @@
+/*
+ This file is part of TALER
+ (C) 2014 Christian Grothoff (and other contributing authors)
+
+ TALER is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ TALER is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along with
+ TALER; see the file COPYING. If not, If not, see <http://www.gnu.org/licenses/>
+*/
+
+/**
+ * @file util/test_json_validations.c
+ * @brief Tests for JSON validations
+ * @author Sree Harsha Totakura <sreeharsha@totakura.in>
+ */
+
+#include "platform.h"
+#include "taler_util.h"
+#include "taler_json_lib.h"
+
+static const char * const json_wire_str =
+ "{ \"type\":\"SEPA\", \
+\"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;
+ int ret;
+
+ 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;
+ }
+ ret = TALER_JSON_validate_wireformat ("SEPA", wire);
+ if (1 == ret)
+ return 0;
+ return 1;
+}