1263646Sbapt[ 2263646Sbapt { 3263646Sbapt "description": "object properties validation", 4263646Sbapt "schema": { 5263646Sbapt "properties": { 6263646Sbapt "foo": {"type": "integer"}, 7263646Sbapt "bar": {"type": "string"} 8263646Sbapt } 9263646Sbapt }, 10263646Sbapt "tests": [ 11263646Sbapt { 12263646Sbapt "description": "both properties present and valid is valid", 13263646Sbapt "data": {"foo": 1, "bar": "baz"}, 14263646Sbapt "valid": true 15263646Sbapt }, 16263646Sbapt { 17263646Sbapt "description": "one property invalid is invalid", 18263646Sbapt "data": {"foo": 1, "bar": {}}, 19263646Sbapt "valid": false 20263646Sbapt }, 21263646Sbapt { 22263646Sbapt "description": "both properties invalid is invalid", 23263646Sbapt "data": {"foo": [], "bar": {}}, 24263646Sbapt "valid": false 25263646Sbapt }, 26263646Sbapt { 27263646Sbapt "description": "doesn't invalidate other properties", 28263646Sbapt "data": {"quux": []}, 29263646Sbapt "valid": true 30263646Sbapt }, 31263646Sbapt { 32263646Sbapt "description": "ignores non-objects", 33263646Sbapt "data": [], 34263646Sbapt "valid": true 35263646Sbapt } 36263646Sbapt ] 37263646Sbapt }, 38263646Sbapt { 39263646Sbapt "description": 40263646Sbapt "properties, patternProperties, additionalProperties interaction", 41263646Sbapt "schema": { 42263646Sbapt "properties": { 43263646Sbapt "foo": {"type": "array", "maxItems": 3}, 44263646Sbapt "bar": {"type": "array"} 45263646Sbapt }, 46263646Sbapt "patternProperties": {"f.o": {"minItems": 2}}, 47263646Sbapt "additionalProperties": {"type": "integer"} 48263646Sbapt }, 49263646Sbapt "tests": [ 50263646Sbapt { 51263646Sbapt "description": "property validates property", 52263646Sbapt "data": {"foo": [1, 2]}, 53263646Sbapt "valid": true 54263646Sbapt }, 55263646Sbapt { 56263646Sbapt "description": "property invalidates property", 57263646Sbapt "data": {"foo": [1, 2, 3, 4]}, 58263646Sbapt "valid": false 59263646Sbapt }, 60263646Sbapt { 61263646Sbapt "description": "patternProperty invalidates property", 62263646Sbapt "data": {"foo": []}, 63263646Sbapt "valid": false 64263646Sbapt }, 65263646Sbapt { 66263646Sbapt "description": "patternProperty validates nonproperty", 67263646Sbapt "data": {"fxo": [1, 2]}, 68263646Sbapt "valid": true 69263646Sbapt }, 70263646Sbapt { 71263646Sbapt "description": "patternProperty invalidates nonproperty", 72263646Sbapt "data": {"fxo": []}, 73263646Sbapt "valid": false 74263646Sbapt }, 75263646Sbapt { 76263646Sbapt "description": "additionalProperty ignores property", 77263646Sbapt "data": {"bar": []}, 78263646Sbapt "valid": true 79263646Sbapt }, 80263646Sbapt { 81263646Sbapt "description": "additionalProperty validates others", 82263646Sbapt "data": {"quux": 3}, 83263646Sbapt "valid": true 84263646Sbapt }, 85263646Sbapt { 86263646Sbapt "description": "additionalProperty invalidates others", 87263646Sbapt "data": {"quux": "foo"}, 88263646Sbapt "valid": false 89263646Sbapt } 90263646Sbapt ] 91263646Sbapt } 92263646Sbapt] 93