1*97bd480fSBaptiste Daroussin[ 2*97bd480fSBaptiste Daroussin { 3*97bd480fSBaptiste Daroussin "description": "object properties validation", 4*97bd480fSBaptiste Daroussin "schema": { 5*97bd480fSBaptiste Daroussin "properties": { 6*97bd480fSBaptiste Daroussin "foo": {"type": "integer"}, 7*97bd480fSBaptiste Daroussin "bar": {"type": "string"} 8*97bd480fSBaptiste Daroussin } 9*97bd480fSBaptiste Daroussin }, 10*97bd480fSBaptiste Daroussin "tests": [ 11*97bd480fSBaptiste Daroussin { 12*97bd480fSBaptiste Daroussin "description": "both properties present and valid is valid", 13*97bd480fSBaptiste Daroussin "data": {"foo": 1, "bar": "baz"}, 14*97bd480fSBaptiste Daroussin "valid": true 15*97bd480fSBaptiste Daroussin }, 16*97bd480fSBaptiste Daroussin { 17*97bd480fSBaptiste Daroussin "description": "one property invalid is invalid", 18*97bd480fSBaptiste Daroussin "data": {"foo": 1, "bar": {}}, 19*97bd480fSBaptiste Daroussin "valid": false 20*97bd480fSBaptiste Daroussin }, 21*97bd480fSBaptiste Daroussin { 22*97bd480fSBaptiste Daroussin "description": "both properties invalid is invalid", 23*97bd480fSBaptiste Daroussin "data": {"foo": [], "bar": {}}, 24*97bd480fSBaptiste Daroussin "valid": false 25*97bd480fSBaptiste Daroussin }, 26*97bd480fSBaptiste Daroussin { 27*97bd480fSBaptiste Daroussin "description": "doesn't invalidate other properties", 28*97bd480fSBaptiste Daroussin "data": {"quux": []}, 29*97bd480fSBaptiste Daroussin "valid": true 30*97bd480fSBaptiste Daroussin }, 31*97bd480fSBaptiste Daroussin { 32*97bd480fSBaptiste Daroussin "description": "ignores non-objects", 33*97bd480fSBaptiste Daroussin "data": [], 34*97bd480fSBaptiste Daroussin "valid": true 35*97bd480fSBaptiste Daroussin } 36*97bd480fSBaptiste Daroussin ] 37*97bd480fSBaptiste Daroussin }, 38*97bd480fSBaptiste Daroussin { 39*97bd480fSBaptiste Daroussin "description": 40*97bd480fSBaptiste Daroussin "properties, patternProperties, additionalProperties interaction", 41*97bd480fSBaptiste Daroussin "schema": { 42*97bd480fSBaptiste Daroussin "properties": { 43*97bd480fSBaptiste Daroussin "foo": {"type": "array", "maxItems": 3}, 44*97bd480fSBaptiste Daroussin "bar": {"type": "array"} 45*97bd480fSBaptiste Daroussin }, 46*97bd480fSBaptiste Daroussin "patternProperties": {"f.o": {"minItems": 2}}, 47*97bd480fSBaptiste Daroussin "additionalProperties": {"type": "integer"} 48*97bd480fSBaptiste Daroussin }, 49*97bd480fSBaptiste Daroussin "tests": [ 50*97bd480fSBaptiste Daroussin { 51*97bd480fSBaptiste Daroussin "description": "property validates property", 52*97bd480fSBaptiste Daroussin "data": {"foo": [1, 2]}, 53*97bd480fSBaptiste Daroussin "valid": true 54*97bd480fSBaptiste Daroussin }, 55*97bd480fSBaptiste Daroussin { 56*97bd480fSBaptiste Daroussin "description": "property invalidates property", 57*97bd480fSBaptiste Daroussin "data": {"foo": [1, 2, 3, 4]}, 58*97bd480fSBaptiste Daroussin "valid": false 59*97bd480fSBaptiste Daroussin }, 60*97bd480fSBaptiste Daroussin { 61*97bd480fSBaptiste Daroussin "description": "patternProperty invalidates property", 62*97bd480fSBaptiste Daroussin "data": {"foo": []}, 63*97bd480fSBaptiste Daroussin "valid": false 64*97bd480fSBaptiste Daroussin }, 65*97bd480fSBaptiste Daroussin { 66*97bd480fSBaptiste Daroussin "description": "patternProperty validates nonproperty", 67*97bd480fSBaptiste Daroussin "data": {"fxo": [1, 2]}, 68*97bd480fSBaptiste Daroussin "valid": true 69*97bd480fSBaptiste Daroussin }, 70*97bd480fSBaptiste Daroussin { 71*97bd480fSBaptiste Daroussin "description": "patternProperty invalidates nonproperty", 72*97bd480fSBaptiste Daroussin "data": {"fxo": []}, 73*97bd480fSBaptiste Daroussin "valid": false 74*97bd480fSBaptiste Daroussin }, 75*97bd480fSBaptiste Daroussin { 76*97bd480fSBaptiste Daroussin "description": "additionalProperty ignores property", 77*97bd480fSBaptiste Daroussin "data": {"bar": []}, 78*97bd480fSBaptiste Daroussin "valid": true 79*97bd480fSBaptiste Daroussin }, 80*97bd480fSBaptiste Daroussin { 81*97bd480fSBaptiste Daroussin "description": "additionalProperty validates others", 82*97bd480fSBaptiste Daroussin "data": {"quux": 3}, 83*97bd480fSBaptiste Daroussin "valid": true 84*97bd480fSBaptiste Daroussin }, 85*97bd480fSBaptiste Daroussin { 86*97bd480fSBaptiste Daroussin "description": "additionalProperty invalidates others", 87*97bd480fSBaptiste Daroussin "data": {"quux": "foo"}, 88*97bd480fSBaptiste Daroussin "valid": false 89*97bd480fSBaptiste Daroussin } 90*97bd480fSBaptiste Daroussin ] 91*97bd480fSBaptiste Daroussin } 92*97bd480fSBaptiste Daroussin] 93