json_schemer 0.2.9 → 0.2.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (239) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +3 -9
  3. data/Gemfile.lock +6 -6
  4. data/json_schemer.gemspec +2 -2
  5. data/lib/json_schemer.rb +2 -0
  6. data/lib/json_schemer/errors.rb +31 -0
  7. data/lib/json_schemer/schema/base.rb +13 -16
  8. data/lib/json_schemer/version.rb +1 -1
  9. metadata +5 -234
  10. data/JSON-Schema-Test-Suite/.gitignore +0 -1
  11. data/JSON-Schema-Test-Suite/.travis.yml +0 -8
  12. data/JSON-Schema-Test-Suite/LICENSE +0 -19
  13. data/JSON-Schema-Test-Suite/README.md +0 -181
  14. data/JSON-Schema-Test-Suite/bin/jsonschema_suite +0 -298
  15. data/JSON-Schema-Test-Suite/index.js +0 -45
  16. data/JSON-Schema-Test-Suite/package.json +0 -28
  17. data/JSON-Schema-Test-Suite/remotes/folder/folderInteger.json +0 -3
  18. data/JSON-Schema-Test-Suite/remotes/integer.json +0 -3
  19. data/JSON-Schema-Test-Suite/remotes/name-defs.json +0 -15
  20. data/JSON-Schema-Test-Suite/remotes/name.json +0 -15
  21. data/JSON-Schema-Test-Suite/remotes/subSchemas.json +0 -8
  22. data/JSON-Schema-Test-Suite/test-schema.json +0 -59
  23. data/JSON-Schema-Test-Suite/tests/draft2019-09/additionalItems.json +0 -87
  24. data/JSON-Schema-Test-Suite/tests/draft2019-09/additionalProperties.json +0 -133
  25. data/JSON-Schema-Test-Suite/tests/draft2019-09/allOf.json +0 -218
  26. data/JSON-Schema-Test-Suite/tests/draft2019-09/anchor.json +0 -87
  27. data/JSON-Schema-Test-Suite/tests/draft2019-09/anyOf.json +0 -189
  28. data/JSON-Schema-Test-Suite/tests/draft2019-09/boolean_schema.json +0 -104
  29. data/JSON-Schema-Test-Suite/tests/draft2019-09/const.json +0 -170
  30. data/JSON-Schema-Test-Suite/tests/draft2019-09/contains.json +0 -95
  31. data/JSON-Schema-Test-Suite/tests/draft2019-09/default.json +0 -49
  32. data/JSON-Schema-Test-Suite/tests/draft2019-09/defs.json +0 -24
  33. data/JSON-Schema-Test-Suite/tests/draft2019-09/dependencies.json +0 -268
  34. data/JSON-Schema-Test-Suite/tests/draft2019-09/enum.json +0 -179
  35. data/JSON-Schema-Test-Suite/tests/draft2019-09/exclusiveMaximum.json +0 -30
  36. data/JSON-Schema-Test-Suite/tests/draft2019-09/exclusiveMinimum.json +0 -30
  37. data/JSON-Schema-Test-Suite/tests/draft2019-09/format.json +0 -614
  38. data/JSON-Schema-Test-Suite/tests/draft2019-09/if-then-else.json +0 -188
  39. data/JSON-Schema-Test-Suite/tests/draft2019-09/items.json +0 -250
  40. data/JSON-Schema-Test-Suite/tests/draft2019-09/maxItems.json +0 -28
  41. data/JSON-Schema-Test-Suite/tests/draft2019-09/maxLength.json +0 -33
  42. data/JSON-Schema-Test-Suite/tests/draft2019-09/maxProperties.json +0 -38
  43. data/JSON-Schema-Test-Suite/tests/draft2019-09/maximum.json +0 -28
  44. data/JSON-Schema-Test-Suite/tests/draft2019-09/minItems.json +0 -28
  45. data/JSON-Schema-Test-Suite/tests/draft2019-09/minLength.json +0 -33
  46. data/JSON-Schema-Test-Suite/tests/draft2019-09/minProperties.json +0 -38
  47. data/JSON-Schema-Test-Suite/tests/draft2019-09/minimum.json +0 -59
  48. data/JSON-Schema-Test-Suite/tests/draft2019-09/multipleOf.json +0 -60
  49. data/JSON-Schema-Test-Suite/tests/draft2019-09/not.json +0 -117
  50. data/JSON-Schema-Test-Suite/tests/draft2019-09/oneOf.json +0 -206
  51. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/bignum.json +0 -105
  52. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/content.json +0 -77
  53. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/ecmascript-regex.json +0 -213
  54. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/date-time.json +0 -53
  55. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/date.json +0 -23
  56. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/email.json +0 -18
  57. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/hostname.json +0 -33
  58. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/idn-email.json +0 -18
  59. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/idn-hostname.json +0 -28
  60. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/ipv4.json +0 -33
  61. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/ipv6.json +0 -28
  62. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/iri-reference.json +0 -43
  63. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/iri.json +0 -53
  64. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/json-pointer.json +0 -168
  65. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/regex.json +0 -18
  66. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/relative-json-pointer.json +0 -33
  67. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/time.json +0 -23
  68. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/uri-reference.json +0 -43
  69. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/uri-template.json +0 -28
  70. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/uri.json +0 -103
  71. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/zeroTerminatedFloats.json +0 -15
  72. data/JSON-Schema-Test-Suite/tests/draft2019-09/pattern.json +0 -34
  73. data/JSON-Schema-Test-Suite/tests/draft2019-09/patternProperties.json +0 -151
  74. data/JSON-Schema-Test-Suite/tests/draft2019-09/properties.json +0 -167
  75. data/JSON-Schema-Test-Suite/tests/draft2019-09/propertyNames.json +0 -78
  76. data/JSON-Schema-Test-Suite/tests/draft2019-09/ref.json +0 -359
  77. data/JSON-Schema-Test-Suite/tests/draft2019-09/refRemote.json +0 -167
  78. data/JSON-Schema-Test-Suite/tests/draft2019-09/required.json +0 -105
  79. data/JSON-Schema-Test-Suite/tests/draft2019-09/type.json +0 -464
  80. data/JSON-Schema-Test-Suite/tests/draft2019-09/uniqueItems.json +0 -173
  81. data/JSON-Schema-Test-Suite/tests/draft3/additionalItems.json +0 -82
  82. data/JSON-Schema-Test-Suite/tests/draft3/additionalProperties.json +0 -133
  83. data/JSON-Schema-Test-Suite/tests/draft3/default.json +0 -49
  84. data/JSON-Schema-Test-Suite/tests/draft3/dependencies.json +0 -118
  85. data/JSON-Schema-Test-Suite/tests/draft3/disallow.json +0 -80
  86. data/JSON-Schema-Test-Suite/tests/draft3/divisibleBy.json +0 -60
  87. data/JSON-Schema-Test-Suite/tests/draft3/enum.json +0 -71
  88. data/JSON-Schema-Test-Suite/tests/draft3/extends.json +0 -94
  89. data/JSON-Schema-Test-Suite/tests/draft3/format.json +0 -362
  90. data/JSON-Schema-Test-Suite/tests/draft3/items.json +0 -46
  91. data/JSON-Schema-Test-Suite/tests/draft3/maxItems.json +0 -28
  92. data/JSON-Schema-Test-Suite/tests/draft3/maxLength.json +0 -33
  93. data/JSON-Schema-Test-Suite/tests/draft3/maximum.json +0 -42
  94. data/JSON-Schema-Test-Suite/tests/draft3/minItems.json +0 -28
  95. data/JSON-Schema-Test-Suite/tests/draft3/minLength.json +0 -33
  96. data/JSON-Schema-Test-Suite/tests/draft3/minimum.json +0 -73
  97. data/JSON-Schema-Test-Suite/tests/draft3/optional/bignum.json +0 -107
  98. data/JSON-Schema-Test-Suite/tests/draft3/optional/ecmascript-regex.json +0 -18
  99. data/JSON-Schema-Test-Suite/tests/draft3/optional/format.json +0 -227
  100. data/JSON-Schema-Test-Suite/tests/draft3/optional/zeroTerminatedFloats.json +0 -15
  101. data/JSON-Schema-Test-Suite/tests/draft3/pattern.json +0 -34
  102. data/JSON-Schema-Test-Suite/tests/draft3/patternProperties.json +0 -115
  103. data/JSON-Schema-Test-Suite/tests/draft3/properties.json +0 -97
  104. data/JSON-Schema-Test-Suite/tests/draft3/ref.json +0 -192
  105. data/JSON-Schema-Test-Suite/tests/draft3/refRemote.json +0 -74
  106. data/JSON-Schema-Test-Suite/tests/draft3/required.json +0 -53
  107. data/JSON-Schema-Test-Suite/tests/draft3/type.json +0 -489
  108. data/JSON-Schema-Test-Suite/tests/draft3/uniqueItems.json +0 -163
  109. data/JSON-Schema-Test-Suite/tests/draft4/additionalItems.json +0 -87
  110. data/JSON-Schema-Test-Suite/tests/draft4/additionalProperties.json +0 -133
  111. data/JSON-Schema-Test-Suite/tests/draft4/allOf.json +0 -185
  112. data/JSON-Schema-Test-Suite/tests/draft4/anyOf.json +0 -156
  113. data/JSON-Schema-Test-Suite/tests/draft4/default.json +0 -49
  114. data/JSON-Schema-Test-Suite/tests/draft4/definitions.json +0 -32
  115. data/JSON-Schema-Test-Suite/tests/draft4/dependencies.json +0 -194
  116. data/JSON-Schema-Test-Suite/tests/draft4/enum.json +0 -179
  117. data/JSON-Schema-Test-Suite/tests/draft4/format.json +0 -218
  118. data/JSON-Schema-Test-Suite/tests/draft4/items.json +0 -195
  119. data/JSON-Schema-Test-Suite/tests/draft4/maxItems.json +0 -28
  120. data/JSON-Schema-Test-Suite/tests/draft4/maxLength.json +0 -33
  121. data/JSON-Schema-Test-Suite/tests/draft4/maxProperties.json +0 -38
  122. data/JSON-Schema-Test-Suite/tests/draft4/maximum.json +0 -73
  123. data/JSON-Schema-Test-Suite/tests/draft4/minItems.json +0 -28
  124. data/JSON-Schema-Test-Suite/tests/draft4/minLength.json +0 -33
  125. data/JSON-Schema-Test-Suite/tests/draft4/minProperties.json +0 -38
  126. data/JSON-Schema-Test-Suite/tests/draft4/minimum.json +0 -104
  127. data/JSON-Schema-Test-Suite/tests/draft4/multipleOf.json +0 -60
  128. data/JSON-Schema-Test-Suite/tests/draft4/not.json +0 -96
  129. data/JSON-Schema-Test-Suite/tests/draft4/oneOf.json +0 -162
  130. data/JSON-Schema-Test-Suite/tests/draft4/optional/bignum.json +0 -107
  131. data/JSON-Schema-Test-Suite/tests/draft4/optional/ecmascript-regex.json +0 -213
  132. data/JSON-Schema-Test-Suite/tests/draft4/optional/format.json +0 -253
  133. data/JSON-Schema-Test-Suite/tests/draft4/optional/zeroTerminatedFloats.json +0 -15
  134. data/JSON-Schema-Test-Suite/tests/draft4/pattern.json +0 -34
  135. data/JSON-Schema-Test-Suite/tests/draft4/patternProperties.json +0 -120
  136. data/JSON-Schema-Test-Suite/tests/draft4/properties.json +0 -136
  137. data/JSON-Schema-Test-Suite/tests/draft4/ref.json +0 -411
  138. data/JSON-Schema-Test-Suite/tests/draft4/refRemote.json +0 -171
  139. data/JSON-Schema-Test-Suite/tests/draft4/required.json +0 -89
  140. data/JSON-Schema-Test-Suite/tests/draft4/type.json +0 -464
  141. data/JSON-Schema-Test-Suite/tests/draft4/uniqueItems.json +0 -173
  142. data/JSON-Schema-Test-Suite/tests/draft6/additionalItems.json +0 -87
  143. data/JSON-Schema-Test-Suite/tests/draft6/additionalProperties.json +0 -133
  144. data/JSON-Schema-Test-Suite/tests/draft6/allOf.json +0 -218
  145. data/JSON-Schema-Test-Suite/tests/draft6/anyOf.json +0 -189
  146. data/JSON-Schema-Test-Suite/tests/draft6/boolean_schema.json +0 -104
  147. data/JSON-Schema-Test-Suite/tests/draft6/const.json +0 -170
  148. data/JSON-Schema-Test-Suite/tests/draft6/contains.json +0 -100
  149. data/JSON-Schema-Test-Suite/tests/draft6/default.json +0 -49
  150. data/JSON-Schema-Test-Suite/tests/draft6/definitions.json +0 -32
  151. data/JSON-Schema-Test-Suite/tests/draft6/dependencies.json +0 -268
  152. data/JSON-Schema-Test-Suite/tests/draft6/enum.json +0 -179
  153. data/JSON-Schema-Test-Suite/tests/draft6/exclusiveMaximum.json +0 -30
  154. data/JSON-Schema-Test-Suite/tests/draft6/exclusiveMinimum.json +0 -30
  155. data/JSON-Schema-Test-Suite/tests/draft6/format.json +0 -326
  156. data/JSON-Schema-Test-Suite/tests/draft6/items.json +0 -250
  157. data/JSON-Schema-Test-Suite/tests/draft6/maxItems.json +0 -28
  158. data/JSON-Schema-Test-Suite/tests/draft6/maxLength.json +0 -33
  159. data/JSON-Schema-Test-Suite/tests/draft6/maxProperties.json +0 -38
  160. data/JSON-Schema-Test-Suite/tests/draft6/maximum.json +0 -28
  161. data/JSON-Schema-Test-Suite/tests/draft6/minItems.json +0 -28
  162. data/JSON-Schema-Test-Suite/tests/draft6/minLength.json +0 -33
  163. data/JSON-Schema-Test-Suite/tests/draft6/minProperties.json +0 -38
  164. data/JSON-Schema-Test-Suite/tests/draft6/minimum.json +0 -59
  165. data/JSON-Schema-Test-Suite/tests/draft6/multipleOf.json +0 -60
  166. data/JSON-Schema-Test-Suite/tests/draft6/not.json +0 -117
  167. data/JSON-Schema-Test-Suite/tests/draft6/oneOf.json +0 -206
  168. data/JSON-Schema-Test-Suite/tests/draft6/optional/bignum.json +0 -105
  169. data/JSON-Schema-Test-Suite/tests/draft6/optional/ecmascript-regex.json +0 -213
  170. data/JSON-Schema-Test-Suite/tests/draft6/optional/format.json +0 -491
  171. data/JSON-Schema-Test-Suite/tests/draft6/optional/zeroTerminatedFloats.json +0 -15
  172. data/JSON-Schema-Test-Suite/tests/draft6/pattern.json +0 -34
  173. data/JSON-Schema-Test-Suite/tests/draft6/patternProperties.json +0 -151
  174. data/JSON-Schema-Test-Suite/tests/draft6/properties.json +0 -167
  175. data/JSON-Schema-Test-Suite/tests/draft6/propertyNames.json +0 -78
  176. data/JSON-Schema-Test-Suite/tests/draft6/ref.json +0 -443
  177. data/JSON-Schema-Test-Suite/tests/draft6/refRemote.json +0 -171
  178. data/JSON-Schema-Test-Suite/tests/draft6/required.json +0 -105
  179. data/JSON-Schema-Test-Suite/tests/draft6/type.json +0 -464
  180. data/JSON-Schema-Test-Suite/tests/draft6/uniqueItems.json +0 -173
  181. data/JSON-Schema-Test-Suite/tests/draft7/additionalItems.json +0 -87
  182. data/JSON-Schema-Test-Suite/tests/draft7/additionalProperties.json +0 -133
  183. data/JSON-Schema-Test-Suite/tests/draft7/allOf.json +0 -218
  184. data/JSON-Schema-Test-Suite/tests/draft7/anyOf.json +0 -189
  185. data/JSON-Schema-Test-Suite/tests/draft7/boolean_schema.json +0 -104
  186. data/JSON-Schema-Test-Suite/tests/draft7/const.json +0 -170
  187. data/JSON-Schema-Test-Suite/tests/draft7/contains.json +0 -100
  188. data/JSON-Schema-Test-Suite/tests/draft7/default.json +0 -49
  189. data/JSON-Schema-Test-Suite/tests/draft7/definitions.json +0 -32
  190. data/JSON-Schema-Test-Suite/tests/draft7/dependencies.json +0 -268
  191. data/JSON-Schema-Test-Suite/tests/draft7/enum.json +0 -179
  192. data/JSON-Schema-Test-Suite/tests/draft7/exclusiveMaximum.json +0 -30
  193. data/JSON-Schema-Test-Suite/tests/draft7/exclusiveMinimum.json +0 -30
  194. data/JSON-Schema-Test-Suite/tests/draft7/format.json +0 -614
  195. data/JSON-Schema-Test-Suite/tests/draft7/if-then-else.json +0 -188
  196. data/JSON-Schema-Test-Suite/tests/draft7/items.json +0 -250
  197. data/JSON-Schema-Test-Suite/tests/draft7/maxItems.json +0 -28
  198. data/JSON-Schema-Test-Suite/tests/draft7/maxLength.json +0 -33
  199. data/JSON-Schema-Test-Suite/tests/draft7/maxProperties.json +0 -38
  200. data/JSON-Schema-Test-Suite/tests/draft7/maximum.json +0 -28
  201. data/JSON-Schema-Test-Suite/tests/draft7/minItems.json +0 -28
  202. data/JSON-Schema-Test-Suite/tests/draft7/minLength.json +0 -33
  203. data/JSON-Schema-Test-Suite/tests/draft7/minProperties.json +0 -38
  204. data/JSON-Schema-Test-Suite/tests/draft7/minimum.json +0 -59
  205. data/JSON-Schema-Test-Suite/tests/draft7/multipleOf.json +0 -60
  206. data/JSON-Schema-Test-Suite/tests/draft7/not.json +0 -117
  207. data/JSON-Schema-Test-Suite/tests/draft7/oneOf.json +0 -206
  208. data/JSON-Schema-Test-Suite/tests/draft7/optional/bignum.json +0 -105
  209. data/JSON-Schema-Test-Suite/tests/draft7/optional/content.json +0 -77
  210. data/JSON-Schema-Test-Suite/tests/draft7/optional/ecmascript-regex.json +0 -213
  211. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/date-time.json +0 -53
  212. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/date.json +0 -23
  213. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/email.json +0 -18
  214. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/hostname.json +0 -33
  215. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-email.json +0 -18
  216. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-hostname.json +0 -28
  217. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv4.json +0 -33
  218. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv6.json +0 -28
  219. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri-reference.json +0 -43
  220. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri.json +0 -53
  221. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/json-pointer.json +0 -168
  222. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/regex.json +0 -18
  223. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/relative-json-pointer.json +0 -33
  224. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/time.json +0 -23
  225. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-reference.json +0 -43
  226. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-template.json +0 -28
  227. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri.json +0 -103
  228. data/JSON-Schema-Test-Suite/tests/draft7/optional/zeroTerminatedFloats.json +0 -15
  229. data/JSON-Schema-Test-Suite/tests/draft7/pattern.json +0 -34
  230. data/JSON-Schema-Test-Suite/tests/draft7/patternProperties.json +0 -151
  231. data/JSON-Schema-Test-Suite/tests/draft7/properties.json +0 -167
  232. data/JSON-Schema-Test-Suite/tests/draft7/propertyNames.json +0 -78
  233. data/JSON-Schema-Test-Suite/tests/draft7/ref.json +0 -443
  234. data/JSON-Schema-Test-Suite/tests/draft7/refRemote.json +0 -171
  235. data/JSON-Schema-Test-Suite/tests/draft7/required.json +0 -105
  236. data/JSON-Schema-Test-Suite/tests/draft7/type.json +0 -464
  237. data/JSON-Schema-Test-Suite/tests/draft7/uniqueItems.json +0 -173
  238. data/JSON-Schema-Test-Suite/tests/latest +0 -1
  239. data/JSON-Schema-Test-Suite/tox.ini +0 -9
@@ -1,156 +0,0 @@
1
- [
2
- {
3
- "description": "anyOf",
4
- "schema": {
5
- "anyOf": [
6
- {
7
- "type": "integer"
8
- },
9
- {
10
- "minimum": 2
11
- }
12
- ]
13
- },
14
- "tests": [
15
- {
16
- "description": "first anyOf valid",
17
- "data": 1,
18
- "valid": true
19
- },
20
- {
21
- "description": "second anyOf valid",
22
- "data": 2.5,
23
- "valid": true
24
- },
25
- {
26
- "description": "both anyOf valid",
27
- "data": 3,
28
- "valid": true
29
- },
30
- {
31
- "description": "neither anyOf valid",
32
- "data": 1.5,
33
- "valid": false
34
- }
35
- ]
36
- },
37
- {
38
- "description": "anyOf with base schema",
39
- "schema": {
40
- "type": "string",
41
- "anyOf" : [
42
- {
43
- "maxLength": 2
44
- },
45
- {
46
- "minLength": 4
47
- }
48
- ]
49
- },
50
- "tests": [
51
- {
52
- "description": "mismatch base schema",
53
- "data": 3,
54
- "valid": false
55
- },
56
- {
57
- "description": "one anyOf valid",
58
- "data": "foobar",
59
- "valid": true
60
- },
61
- {
62
- "description": "both anyOf invalid",
63
- "data": "foo",
64
- "valid": false
65
- }
66
- ]
67
- },
68
- {
69
- "description": "anyOf complex types",
70
- "schema": {
71
- "anyOf": [
72
- {
73
- "properties": {
74
- "bar": {"type": "integer"}
75
- },
76
- "required": ["bar"]
77
- },
78
- {
79
- "properties": {
80
- "foo": {"type": "string"}
81
- },
82
- "required": ["foo"]
83
- }
84
- ]
85
- },
86
- "tests": [
87
- {
88
- "description": "first anyOf valid (complex)",
89
- "data": {"bar": 2},
90
- "valid": true
91
- },
92
- {
93
- "description": "second anyOf valid (complex)",
94
- "data": {"foo": "baz"},
95
- "valid": true
96
- },
97
- {
98
- "description": "both anyOf valid (complex)",
99
- "data": {"foo": "baz", "bar": 2},
100
- "valid": true
101
- },
102
- {
103
- "description": "neither anyOf valid (complex)",
104
- "data": {"foo": 2, "bar": "quux"},
105
- "valid": false
106
- }
107
- ]
108
- },
109
- {
110
- "description": "anyOf with one empty schema",
111
- "schema": {
112
- "anyOf": [
113
- { "type": "number" },
114
- {}
115
- ]
116
- },
117
- "tests": [
118
- {
119
- "description": "string is valid",
120
- "data": "foo",
121
- "valid": true
122
- },
123
- {
124
- "description": "number is valid",
125
- "data": 123,
126
- "valid": true
127
- }
128
- ]
129
- },
130
- {
131
- "description": "nested anyOf, to check validation semantics",
132
- "schema": {
133
- "anyOf": [
134
- {
135
- "anyOf": [
136
- {
137
- "type": "null"
138
- }
139
- ]
140
- }
141
- ]
142
- },
143
- "tests": [
144
- {
145
- "description": "null is valid",
146
- "data": null,
147
- "valid": true
148
- },
149
- {
150
- "description": "anything non-null is invalid",
151
- "data": 123,
152
- "valid": false
153
- }
154
- ]
155
- }
156
- ]
@@ -1,49 +0,0 @@
1
- [
2
- {
3
- "description": "invalid type for default",
4
- "schema": {
5
- "properties": {
6
- "foo": {
7
- "type": "integer",
8
- "default": []
9
- }
10
- }
11
- },
12
- "tests": [
13
- {
14
- "description": "valid when property is specified",
15
- "data": {"foo": 13},
16
- "valid": true
17
- },
18
- {
19
- "description": "still valid when the invalid default is used",
20
- "data": {},
21
- "valid": true
22
- }
23
- ]
24
- },
25
- {
26
- "description": "invalid string value for default",
27
- "schema": {
28
- "properties": {
29
- "bar": {
30
- "type": "string",
31
- "minLength": 4,
32
- "default": "bad"
33
- }
34
- }
35
- },
36
- "tests": [
37
- {
38
- "description": "valid when property is specified",
39
- "data": {"bar": "good"},
40
- "valid": true
41
- },
42
- {
43
- "description": "still valid when the invalid default is used",
44
- "data": {},
45
- "valid": true
46
- }
47
- ]
48
- }
49
- ]
@@ -1,32 +0,0 @@
1
- [
2
- {
3
- "description": "valid definition",
4
- "schema": {"$ref": "http://json-schema.org/draft-04/schema#"},
5
- "tests": [
6
- {
7
- "description": "valid definition schema",
8
- "data": {
9
- "definitions": {
10
- "foo": {"type": "integer"}
11
- }
12
- },
13
- "valid": true
14
- }
15
- ]
16
- },
17
- {
18
- "description": "invalid definition",
19
- "schema": {"$ref": "http://json-schema.org/draft-04/schema#"},
20
- "tests": [
21
- {
22
- "description": "invalid definition schema",
23
- "data": {
24
- "definitions": {
25
- "foo": {"type": 1}
26
- }
27
- },
28
- "valid": false
29
- }
30
- ]
31
- }
32
- ]
@@ -1,194 +0,0 @@
1
- [
2
- {
3
- "description": "dependencies",
4
- "schema": {
5
- "dependencies": {"bar": ["foo"]}
6
- },
7
- "tests": [
8
- {
9
- "description": "neither",
10
- "data": {},
11
- "valid": true
12
- },
13
- {
14
- "description": "nondependant",
15
- "data": {"foo": 1},
16
- "valid": true
17
- },
18
- {
19
- "description": "with dependency",
20
- "data": {"foo": 1, "bar": 2},
21
- "valid": true
22
- },
23
- {
24
- "description": "missing dependency",
25
- "data": {"bar": 2},
26
- "valid": false
27
- },
28
- {
29
- "description": "ignores arrays",
30
- "data": ["bar"],
31
- "valid": true
32
- },
33
- {
34
- "description": "ignores strings",
35
- "data": "foobar",
36
- "valid": true
37
- },
38
- {
39
- "description": "ignores other non-objects",
40
- "data": 12,
41
- "valid": true
42
- }
43
- ]
44
- },
45
- {
46
- "description": "multiple dependencies",
47
- "schema": {
48
- "dependencies": {"quux": ["foo", "bar"]}
49
- },
50
- "tests": [
51
- {
52
- "description": "neither",
53
- "data": {},
54
- "valid": true
55
- },
56
- {
57
- "description": "nondependants",
58
- "data": {"foo": 1, "bar": 2},
59
- "valid": true
60
- },
61
- {
62
- "description": "with dependencies",
63
- "data": {"foo": 1, "bar": 2, "quux": 3},
64
- "valid": true
65
- },
66
- {
67
- "description": "missing dependency",
68
- "data": {"foo": 1, "quux": 2},
69
- "valid": false
70
- },
71
- {
72
- "description": "missing other dependency",
73
- "data": {"bar": 1, "quux": 2},
74
- "valid": false
75
- },
76
- {
77
- "description": "missing both dependencies",
78
- "data": {"quux": 1},
79
- "valid": false
80
- }
81
- ]
82
- },
83
- {
84
- "description": "multiple dependencies subschema",
85
- "schema": {
86
- "dependencies": {
87
- "bar": {
88
- "properties": {
89
- "foo": {"type": "integer"},
90
- "bar": {"type": "integer"}
91
- }
92
- }
93
- }
94
- },
95
- "tests": [
96
- {
97
- "description": "valid",
98
- "data": {"foo": 1, "bar": 2},
99
- "valid": true
100
- },
101
- {
102
- "description": "no dependency",
103
- "data": {"foo": "quux"},
104
- "valid": true
105
- },
106
- {
107
- "description": "wrong type",
108
- "data": {"foo": "quux", "bar": 2},
109
- "valid": false
110
- },
111
- {
112
- "description": "wrong type other",
113
- "data": {"foo": 2, "bar": "quux"},
114
- "valid": false
115
- },
116
- {
117
- "description": "wrong type both",
118
- "data": {"foo": "quux", "bar": "quux"},
119
- "valid": false
120
- }
121
- ]
122
- },
123
- {
124
- "description": "dependencies with escaped characters",
125
- "schema": {
126
- "dependencies": {
127
- "foo\nbar": ["foo\rbar"],
128
- "foo\tbar": {
129
- "minProperties": 4
130
- },
131
- "foo'bar": {"required": ["foo\"bar"]},
132
- "foo\"bar": ["foo'bar"]
133
- }
134
- },
135
- "tests": [
136
- {
137
- "description": "valid object 1",
138
- "data": {
139
- "foo\nbar": 1,
140
- "foo\rbar": 2
141
- },
142
- "valid": true
143
- },
144
- {
145
- "description": "valid object 2",
146
- "data": {
147
- "foo\tbar": 1,
148
- "a": 2,
149
- "b": 3,
150
- "c": 4
151
- },
152
- "valid": true
153
- },
154
- {
155
- "description": "valid object 3",
156
- "data": {
157
- "foo'bar": 1,
158
- "foo\"bar": 2
159
- },
160
- "valid": true
161
- },
162
- {
163
- "description": "invalid object 1",
164
- "data": {
165
- "foo\nbar": 1,
166
- "foo": 2
167
- },
168
- "valid": false
169
- },
170
- {
171
- "description": "invalid object 2",
172
- "data": {
173
- "foo\tbar": 1,
174
- "a": 2
175
- },
176
- "valid": false
177
- },
178
- {
179
- "description": "invalid object 3",
180
- "data": {
181
- "foo'bar": 1
182
- },
183
- "valid": false
184
- },
185
- {
186
- "description": "invalid object 4",
187
- "data": {
188
- "foo\"bar": 2
189
- },
190
- "valid": false
191
- }
192
- ]
193
- }
194
- ]
@@ -1,179 +0,0 @@
1
- [
2
- {
3
- "description": "simple enum validation",
4
- "schema": {"enum": [1, 2, 3]},
5
- "tests": [
6
- {
7
- "description": "one of the enum is valid",
8
- "data": 1,
9
- "valid": true
10
- },
11
- {
12
- "description": "something else is invalid",
13
- "data": 4,
14
- "valid": false
15
- }
16
- ]
17
- },
18
- {
19
- "description": "heterogeneous enum validation",
20
- "schema": {"enum": [6, "foo", [], true, {"foo": 12}]},
21
- "tests": [
22
- {
23
- "description": "one of the enum is valid",
24
- "data": [],
25
- "valid": true
26
- },
27
- {
28
- "description": "something else is invalid",
29
- "data": null,
30
- "valid": false
31
- },
32
- {
33
- "description": "objects are deep compared",
34
- "data": {"foo": false},
35
- "valid": false
36
- }
37
- ]
38
- },
39
- {
40
- "description": "enums in properties",
41
- "schema": {
42
- "type":"object",
43
- "properties": {
44
- "foo": {"enum":["foo"]},
45
- "bar": {"enum":["bar"]}
46
- },
47
- "required": ["bar"]
48
- },
49
- "tests": [
50
- {
51
- "description": "both properties are valid",
52
- "data": {"foo":"foo", "bar":"bar"},
53
- "valid": true
54
- },
55
- {
56
- "description": "missing optional property is valid",
57
- "data": {"bar":"bar"},
58
- "valid": true
59
- },
60
- {
61
- "description": "missing required property is invalid",
62
- "data": {"foo":"foo"},
63
- "valid": false
64
- },
65
- {
66
- "description": "missing all properties is invalid",
67
- "data": {},
68
- "valid": false
69
- }
70
- ]
71
- },
72
- {
73
- "description": "enum with escaped characters",
74
- "schema": {
75
- "enum": ["foo\nbar", "foo\rbar"]
76
- },
77
- "tests": [
78
- {
79
- "description": "member 1 is valid",
80
- "data": "foo\nbar",
81
- "valid": true
82
- },
83
- {
84
- "description": "member 2 is valid",
85
- "data": "foo\rbar",
86
- "valid": true
87
- },
88
- {
89
- "description": "another string is invalid",
90
- "data": "abc",
91
- "valid": false
92
- }
93
- ]
94
- },
95
- {
96
- "description": "enum with false does not match 0",
97
- "schema": {"enum": [false]},
98
- "tests": [
99
- {
100
- "description": "false is valid",
101
- "data": false,
102
- "valid": true
103
- },
104
- {
105
- "description": "integer zero is invalid",
106
- "data": 0,
107
- "valid": false
108
- },
109
- {
110
- "description": "float zero is invalid",
111
- "data": 0.0,
112
- "valid": false
113
- }
114
- ]
115
- },
116
- {
117
- "description": "enum with true does not match 1",
118
- "schema": {"enum": [true]},
119
- "tests": [
120
- {
121
- "description": "true is valid",
122
- "data": true,
123
- "valid": true
124
- },
125
- {
126
- "description": "integer one is invalid",
127
- "data": 1,
128
- "valid": false
129
- },
130
- {
131
- "description": "float one is invalid",
132
- "data": 1.0,
133
- "valid": false
134
- }
135
- ]
136
- },
137
- {
138
- "description": "enum with 0 does not match false",
139
- "schema": {"enum": [0]},
140
- "tests": [
141
- {
142
- "description": "false is invalid",
143
- "data": false,
144
- "valid": false
145
- },
146
- {
147
- "description": "integer zero is valid",
148
- "data": 0,
149
- "valid": true
150
- },
151
- {
152
- "description": "float zero is valid",
153
- "data": 0.0,
154
- "valid": true
155
- }
156
- ]
157
- },
158
- {
159
- "description": "enum with 1 does not match true",
160
- "schema": {"enum": [1]},
161
- "tests": [
162
- {
163
- "description": "true is invalid",
164
- "data": true,
165
- "valid": false
166
- },
167
- {
168
- "description": "integer one is valid",
169
- "data": 1,
170
- "valid": true
171
- },
172
- {
173
- "description": "float one is valid",
174
- "data": 1.0,
175
- "valid": true
176
- }
177
- ]
178
- }
179
- ]