cuelang.org/go@v0.13.0/encoding/jsonschema/testdata/external/tests/draft4/oneOf.json (about) 1 [ 2 { 3 "description": "oneOf", 4 "schema": { 5 "oneOf": [ 6 { 7 "type": "integer" 8 }, 9 { 10 "minimum": 2 11 } 12 ] 13 }, 14 "tests": [ 15 { 16 "description": "first oneOf valid", 17 "data": 1, 18 "valid": true 19 }, 20 { 21 "description": "second oneOf valid", 22 "data": 2.5, 23 "valid": true 24 }, 25 { 26 "description": "both oneOf valid", 27 "data": 3, 28 "valid": false 29 }, 30 { 31 "description": "neither oneOf valid", 32 "data": 1.5, 33 "valid": false 34 } 35 ] 36 }, 37 { 38 "description": "oneOf with base schema", 39 "schema": { 40 "type": "string", 41 "oneOf": [ 42 { 43 "minLength": 2 44 }, 45 { 46 "maxLength": 4 47 } 48 ] 49 }, 50 "tests": [ 51 { 52 "description": "mismatch base schema", 53 "data": 3, 54 "valid": false 55 }, 56 { 57 "description": "one oneOf valid", 58 "data": "foobar", 59 "valid": true 60 }, 61 { 62 "description": "both oneOf valid", 63 "data": "foo", 64 "valid": false 65 } 66 ] 67 }, 68 { 69 "description": "oneOf complex types", 70 "schema": { 71 "oneOf": [ 72 { 73 "properties": { 74 "bar": { 75 "type": "integer" 76 } 77 }, 78 "required": [ 79 "bar" 80 ] 81 }, 82 { 83 "properties": { 84 "foo": { 85 "type": "string" 86 } 87 }, 88 "required": [ 89 "foo" 90 ] 91 } 92 ] 93 }, 94 "tests": [ 95 { 96 "description": "first oneOf valid (complex)", 97 "data": { 98 "bar": 2 99 }, 100 "valid": true 101 }, 102 { 103 "description": "second oneOf valid (complex)", 104 "data": { 105 "foo": "baz" 106 }, 107 "valid": true 108 }, 109 { 110 "description": "both oneOf valid (complex)", 111 "data": { 112 "foo": "baz", 113 "bar": 2 114 }, 115 "valid": false 116 }, 117 { 118 "description": "neither oneOf valid (complex)", 119 "data": { 120 "foo": 2, 121 "bar": "quux" 122 }, 123 "valid": false 124 } 125 ] 126 }, 127 { 128 "description": "oneOf with empty schema", 129 "schema": { 130 "oneOf": [ 131 { 132 "type": "number" 133 }, 134 {} 135 ] 136 }, 137 "tests": [ 138 { 139 "description": "one valid - valid", 140 "data": "foo", 141 "valid": true 142 }, 143 { 144 "description": "both valid - invalid", 145 "data": 123, 146 "valid": false 147 } 148 ] 149 }, 150 { 151 "description": "oneOf with required", 152 "schema": { 153 "type": "object", 154 "oneOf": [ 155 { 156 "required": [ 157 "foo", 158 "bar" 159 ] 160 }, 161 { 162 "required": [ 163 "foo", 164 "baz" 165 ] 166 } 167 ] 168 }, 169 "tests": [ 170 { 171 "description": "both invalid - invalid", 172 "data": { 173 "bar": 2 174 }, 175 "valid": false 176 }, 177 { 178 "description": "first valid - valid", 179 "data": { 180 "foo": 1, 181 "bar": 2 182 }, 183 "valid": true 184 }, 185 { 186 "description": "second valid - valid", 187 "data": { 188 "foo": 1, 189 "baz": 3 190 }, 191 "valid": true 192 }, 193 { 194 "description": "both valid - invalid", 195 "data": { 196 "foo": 1, 197 "bar": 2, 198 "baz": 3 199 }, 200 "valid": false 201 } 202 ] 203 }, 204 { 205 "description": "oneOf with missing optional property", 206 "schema": { 207 "oneOf": [ 208 { 209 "properties": { 210 "bar": {}, 211 "baz": {} 212 }, 213 "required": [ 214 "bar" 215 ] 216 }, 217 { 218 "properties": { 219 "foo": {} 220 }, 221 "required": [ 222 "foo" 223 ] 224 } 225 ] 226 }, 227 "tests": [ 228 { 229 "description": "first oneOf valid", 230 "data": { 231 "bar": 8 232 }, 233 "valid": true 234 }, 235 { 236 "description": "second oneOf valid", 237 "data": { 238 "foo": "foo" 239 }, 240 "valid": true 241 }, 242 { 243 "description": "both oneOf valid", 244 "data": { 245 "foo": "foo", 246 "bar": 8 247 }, 248 "valid": false 249 }, 250 { 251 "description": "neither oneOf valid", 252 "data": { 253 "baz": "quux" 254 }, 255 "valid": false 256 } 257 ] 258 }, 259 { 260 "description": "nested oneOf, to check validation semantics", 261 "schema": { 262 "oneOf": [ 263 { 264 "oneOf": [ 265 { 266 "type": "null" 267 } 268 ] 269 } 270 ] 271 }, 272 "tests": [ 273 { 274 "description": "null is valid", 275 "data": null, 276 "valid": true 277 }, 278 { 279 "description": "anything non-null is invalid", 280 "data": 123, 281 "valid": false 282 } 283 ] 284 } 285 ]