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