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": {"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 oneOf valid (complex)", 89 "data": {"bar": 2}, 90 "valid": true 91 }, 92 { 93 "description": "second oneOf valid (complex)", 94 "data": {"foo": "baz"}, 95 "valid": true 96 }, 97 { 98 "description": "both oneOf valid (complex)", 99 "data": {"foo": "baz", "bar": 2}, 100 "valid": false 101 }, 102 { 103 "description": "neither oneOf valid (complex)", 104 "data": {"foo": 2, "bar": "quux"}, 105 "valid": false 106 } 107 ] 108 } 109] 110