1268896Sbapt[ 2268896Sbapt { 3268896Sbapt "description": "object properties validation", 4268896Sbapt "schema": { 5268896Sbapt "properties": { 6268896Sbapt "foo": {"type": "integer"}, 7268896Sbapt "bar": {"type": "string"} 8268896Sbapt } 9268896Sbapt }, 10268896Sbapt "tests": [ 11268896Sbapt { 12268896Sbapt "description": "both properties present and valid is valid", 13268896Sbapt "data": {"foo": 1, "bar": "baz"}, 14268896Sbapt "valid": true 15268896Sbapt }, 16268896Sbapt { 17268896Sbapt "description": "one property invalid is invalid", 18268896Sbapt "data": {"foo": 1, "bar": {}}, 19268896Sbapt "valid": false 20268896Sbapt }, 21268896Sbapt { 22268896Sbapt "description": "both properties invalid is invalid", 23268896Sbapt "data": {"foo": [], "bar": {}}, 24268896Sbapt "valid": false 25268896Sbapt }, 26268896Sbapt { 27268896Sbapt "description": "doesn't invalidate other properties", 28268896Sbapt "data": {"quux": []}, 29268896Sbapt "valid": true 30268896Sbapt }, 31268896Sbapt { 32268896Sbapt "description": "ignores non-objects", 33268896Sbapt "data": [], 34268896Sbapt "valid": true 35268896Sbapt } 36268896Sbapt ] 37268896Sbapt }, 38268896Sbapt { 39268896Sbapt "description": 40268896Sbapt "properties, patternProperties, additionalProperties interaction", 41268896Sbapt "schema": { 42268896Sbapt "properties": { 43268896Sbapt "foo": {"type": "array", "maxItems": 3}, 44268896Sbapt "bar": {"type": "array"} 45268896Sbapt }, 46268896Sbapt "patternProperties": {"f.o": {"minItems": 2}}, 47268896Sbapt "additionalProperties": {"type": "integer"} 48268896Sbapt }, 49268896Sbapt "tests": [ 50268896Sbapt { 51268896Sbapt "description": "property validates property", 52268896Sbapt "data": {"foo": [1, 2]}, 53268896Sbapt "valid": true 54268896Sbapt }, 55268896Sbapt { 56268896Sbapt "description": "property invalidates property", 57268896Sbapt "data": {"foo": [1, 2, 3, 4]}, 58268896Sbapt "valid": false 59268896Sbapt }, 60268896Sbapt { 61268896Sbapt "description": "patternProperty invalidates property", 62268896Sbapt "data": {"foo": []}, 63268896Sbapt "valid": false 64268896Sbapt }, 65268896Sbapt { 66268896Sbapt "description": "patternProperty validates nonproperty", 67268896Sbapt "data": {"fxo": [1, 2]}, 68268896Sbapt "valid": true 69268896Sbapt }, 70268896Sbapt { 71268896Sbapt "description": "patternProperty invalidates nonproperty", 72268896Sbapt "data": {"fxo": []}, 73268896Sbapt "valid": false 74268896Sbapt }, 75268896Sbapt { 76268896Sbapt "description": "additionalProperty ignores property", 77268896Sbapt "data": {"bar": []}, 78268896Sbapt "valid": true 79268896Sbapt }, 80268896Sbapt { 81268896Sbapt "description": "additionalProperty validates others", 82268896Sbapt "data": {"quux": 3}, 83268896Sbapt "valid": true 84268896Sbapt }, 85268896Sbapt { 86268896Sbapt "description": "additionalProperty invalidates others", 87268896Sbapt "data": {"quux": "foo"}, 88268896Sbapt "valid": false 89268896Sbapt } 90268896Sbapt ] 91268896Sbapt } 92268896Sbapt] 93