cuelang.org/go@v0.13.0/encoding/jsonschema/testdata/external/tests/draft2020-12/allOf.json (about) 1 [ 2 { 3 "description": "allOf", 4 "schema": { 5 "$schema": "https://json-schema.org/draft/2020-12/schema", 6 "allOf": [ 7 { 8 "properties": { 9 "bar": { 10 "type": "integer" 11 } 12 }, 13 "required": [ 14 "bar" 15 ] 16 }, 17 { 18 "properties": { 19 "foo": { 20 "type": "string" 21 } 22 }, 23 "required": [ 24 "foo" 25 ] 26 } 27 ] 28 }, 29 "tests": [ 30 { 31 "description": "allOf", 32 "data": { 33 "foo": "baz", 34 "bar": 2 35 }, 36 "valid": true 37 }, 38 { 39 "description": "mismatch second", 40 "data": { 41 "foo": "baz" 42 }, 43 "valid": false 44 }, 45 { 46 "description": "mismatch first", 47 "data": { 48 "bar": 2 49 }, 50 "valid": false 51 }, 52 { 53 "description": "wrong type", 54 "data": { 55 "foo": "baz", 56 "bar": "quux" 57 }, 58 "valid": false 59 } 60 ] 61 }, 62 { 63 "description": "allOf with base schema", 64 "schema": { 65 "$schema": "https://json-schema.org/draft/2020-12/schema", 66 "properties": { 67 "bar": { 68 "type": "integer" 69 } 70 }, 71 "required": [ 72 "bar" 73 ], 74 "allOf": [ 75 { 76 "properties": { 77 "foo": { 78 "type": "string" 79 } 80 }, 81 "required": [ 82 "foo" 83 ] 84 }, 85 { 86 "properties": { 87 "baz": { 88 "type": "null" 89 } 90 }, 91 "required": [ 92 "baz" 93 ] 94 } 95 ] 96 }, 97 "tests": [ 98 { 99 "description": "valid", 100 "data": { 101 "foo": "quux", 102 "bar": 2, 103 "baz": null 104 }, 105 "valid": true 106 }, 107 { 108 "description": "mismatch base schema", 109 "data": { 110 "foo": "quux", 111 "baz": null 112 }, 113 "valid": false 114 }, 115 { 116 "description": "mismatch first allOf", 117 "data": { 118 "bar": 2, 119 "baz": null 120 }, 121 "valid": false 122 }, 123 { 124 "description": "mismatch second allOf", 125 "data": { 126 "foo": "quux", 127 "bar": 2 128 }, 129 "valid": false 130 }, 131 { 132 "description": "mismatch both", 133 "data": { 134 "bar": 2 135 }, 136 "valid": false 137 } 138 ] 139 }, 140 { 141 "description": "allOf simple types", 142 "schema": { 143 "$schema": "https://json-schema.org/draft/2020-12/schema", 144 "allOf": [ 145 { 146 "maximum": 30 147 }, 148 { 149 "minimum": 20 150 } 151 ] 152 }, 153 "tests": [ 154 { 155 "description": "valid", 156 "data": 25, 157 "valid": true 158 }, 159 { 160 "description": "mismatch one", 161 "data": 35, 162 "valid": false 163 } 164 ] 165 }, 166 { 167 "description": "allOf with boolean schemas, all true", 168 "schema": { 169 "$schema": "https://json-schema.org/draft/2020-12/schema", 170 "allOf": [ 171 true, 172 true 173 ] 174 }, 175 "tests": [ 176 { 177 "description": "any value is valid", 178 "data": "foo", 179 "valid": true 180 } 181 ] 182 }, 183 { 184 "description": "allOf with boolean schemas, some false", 185 "schema": { 186 "$schema": "https://json-schema.org/draft/2020-12/schema", 187 "allOf": [ 188 true, 189 false 190 ] 191 }, 192 "tests": [ 193 { 194 "description": "any value is invalid", 195 "data": "foo", 196 "valid": false, 197 "skip": { 198 "v2": "unexpected success", 199 "v3": "unexpected success" 200 } 201 } 202 ] 203 }, 204 { 205 "description": "allOf with boolean schemas, all false", 206 "schema": { 207 "$schema": "https://json-schema.org/draft/2020-12/schema", 208 "allOf": [ 209 false, 210 false 211 ] 212 }, 213 "tests": [ 214 { 215 "description": "any value is invalid", 216 "data": "foo", 217 "valid": false, 218 "skip": { 219 "v2": "unexpected success", 220 "v3": "unexpected success" 221 } 222 } 223 ] 224 }, 225 { 226 "description": "allOf with one empty schema", 227 "schema": { 228 "$schema": "https://json-schema.org/draft/2020-12/schema", 229 "allOf": [ 230 {} 231 ] 232 }, 233 "tests": [ 234 { 235 "description": "any data is valid", 236 "data": 1, 237 "valid": true 238 } 239 ] 240 }, 241 { 242 "description": "allOf with two empty schemas", 243 "schema": { 244 "$schema": "https://json-schema.org/draft/2020-12/schema", 245 "allOf": [ 246 {}, 247 {} 248 ] 249 }, 250 "tests": [ 251 { 252 "description": "any data is valid", 253 "data": 1, 254 "valid": true 255 } 256 ] 257 }, 258 { 259 "description": "allOf with the first empty schema", 260 "schema": { 261 "$schema": "https://json-schema.org/draft/2020-12/schema", 262 "allOf": [ 263 {}, 264 { 265 "type": "number" 266 } 267 ] 268 }, 269 "tests": [ 270 { 271 "description": "number is valid", 272 "data": 1, 273 "valid": true 274 }, 275 { 276 "description": "string is invalid", 277 "data": "foo", 278 "valid": false 279 } 280 ] 281 }, 282 { 283 "description": "allOf with the last empty schema", 284 "schema": { 285 "$schema": "https://json-schema.org/draft/2020-12/schema", 286 "allOf": [ 287 { 288 "type": "number" 289 }, 290 {} 291 ] 292 }, 293 "tests": [ 294 { 295 "description": "number is valid", 296 "data": 1, 297 "valid": true 298 }, 299 { 300 "description": "string is invalid", 301 "data": "foo", 302 "valid": false 303 } 304 ] 305 }, 306 { 307 "description": "nested allOf, to check validation semantics", 308 "schema": { 309 "$schema": "https://json-schema.org/draft/2020-12/schema", 310 "allOf": [ 311 { 312 "allOf": [ 313 { 314 "type": "null" 315 } 316 ] 317 } 318 ] 319 }, 320 "tests": [ 321 { 322 "description": "null is valid", 323 "data": null, 324 "valid": true 325 }, 326 { 327 "description": "anything non-null is invalid", 328 "data": 123, 329 "valid": false 330 } 331 ] 332 }, 333 { 334 "description": "allOf combined with anyOf, oneOf", 335 "schema": { 336 "$schema": "https://json-schema.org/draft/2020-12/schema", 337 "allOf": [ 338 { 339 "multipleOf": 2 340 } 341 ], 342 "anyOf": [ 343 { 344 "multipleOf": 3 345 } 346 ], 347 "oneOf": [ 348 { 349 "multipleOf": 5 350 } 351 ] 352 }, 353 "tests": [ 354 { 355 "description": "allOf: false, anyOf: false, oneOf: false", 356 "data": 1, 357 "valid": false 358 }, 359 { 360 "description": "allOf: false, anyOf: false, oneOf: true", 361 "data": 5, 362 "valid": false 363 }, 364 { 365 "description": "allOf: false, anyOf: true, oneOf: false", 366 "data": 3, 367 "valid": false 368 }, 369 { 370 "description": "allOf: false, anyOf: true, oneOf: true", 371 "data": 15, 372 "valid": false 373 }, 374 { 375 "description": "allOf: true, anyOf: false, oneOf: false", 376 "data": 2, 377 "valid": false 378 }, 379 { 380 "description": "allOf: true, anyOf: false, oneOf: true", 381 "data": 10, 382 "valid": false 383 }, 384 { 385 "description": "allOf: true, anyOf: true, oneOf: false", 386 "data": 6, 387 "valid": false 388 }, 389 { 390 "description": "allOf: true, anyOf: true, oneOf: true", 391 "data": 30, 392 "valid": true 393 } 394 ] 395 } 396 ]