aboutsummaryrefslogtreecommitdiff
path: root/v_windows/v/old/vlib/json/json_decode_test.v
diff options
context:
space:
mode:
Diffstat (limited to 'v_windows/v/old/vlib/json/json_decode_test.v')
-rw-r--r--v_windows/v/old/vlib/json/json_decode_test.v35
1 files changed, 35 insertions, 0 deletions
diff --git a/v_windows/v/old/vlib/json/json_decode_test.v b/v_windows/v/old/vlib/json/json_decode_test.v
new file mode 100644
index 0000000..2c4448f
--- /dev/null
+++ b/v_windows/v/old/vlib/json/json_decode_test.v
@@ -0,0 +1,35 @@
+import json
+
+struct TestTwin {
+ id int
+ seed string
+ pubkey string
+}
+
+struct TestTwins {
+mut:
+ twins []TestTwin [required]
+}
+
+fn test_json_decode_fails_to_decode_unrecognised_array_of_dicts() {
+ data := '[{"twins":[{"id":123,"seed":"abcde","pubkey":"xyzasd"},{"id":456,"seed":"dfgdfgdfgd","pubkey":"skjldskljh45sdf"}]}]'
+ json.decode(TestTwins, data) or {
+ assert err.msg == "expected field 'twins' is missing"
+ return
+ }
+ assert false
+}
+
+fn test_json_decode_works_with_a_dict_of_arrays() {
+ data := '{"twins":[{"id":123,"seed":"abcde","pubkey":"xyzasd"},{"id":456,"seed":"dfgdfgdfgd","pubkey":"skjldskljh45sdf"}]}'
+ res := json.decode(TestTwins, data) or {
+ assert false
+ exit(1)
+ }
+ assert res.twins[0].id == 123
+ assert res.twins[0].seed == 'abcde'
+ assert res.twins[0].pubkey == 'xyzasd'
+ assert res.twins[1].id == 456
+ assert res.twins[1].seed == 'dfgdfgdfgd'
+ assert res.twins[1].pubkey == 'skjldskljh45sdf'
+}