Skip to content

Commit 140af95

Browse files
committed
More tests
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
1 parent 0db0a8b commit 140af95

3 files changed

Lines changed: 597 additions & 0 deletions

File tree

test/evaluator/evaluator_2020_12.json

Lines changed: 207 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3525,5 +3525,212 @@
35253525
"The object value was expected to validate against the single defined property subschema"
35263526
]
35273527
}
3528+
},
3529+
{
3530+
"description": "assertion_object_properties_simple_no_fusion_pattern_properties",
3531+
"schema": {
3532+
"$schema": "https://json-schema.org/draft/2020-12/schema",
3533+
"type": "object",
3534+
"properties": { "a": { "type": "string" } },
3535+
"patternProperties": { "^b": { "type": "integer" } }
3536+
},
3537+
"instance": { "a": "hello" },
3538+
"valid": true,
3539+
"fast": {
3540+
"pre": [
3541+
[ "LoopPropertiesStartsWith", "/patternProperties", "#/patternProperties", "" ],
3542+
[ "AssertionPropertyTypeStrict", "/properties/a/type", "#/properties/a/type", "/a" ],
3543+
[ "AssertionTypeStrict", "/type", "#/type", "" ]
3544+
],
3545+
"post": [
3546+
[ true, "LoopPropertiesStartsWith", "/patternProperties", "#/patternProperties", "" ],
3547+
[ true, "AssertionPropertyTypeStrict", "/properties/a/type", "#/properties/a/type", "/a" ],
3548+
[ true, "AssertionTypeStrict", "/type", "#/type", "" ]
3549+
],
3550+
"descriptions": [
3551+
"The object properties that start with the string \"b\" were expected to validate against the defined pattern property subschema",
3552+
"The value was expected to be of type string",
3553+
"The value was expected to be of type object"
3554+
]
3555+
},
3556+
"exhaustive": {
3557+
"pre": [
3558+
[ "LoopPropertiesStartsWith", "/patternProperties", "#/patternProperties", "" ],
3559+
[ "LogicalWhenType", "/properties", "#/properties", "" ],
3560+
[ "AssertionTypeStrict", "/properties/a/type", "#/properties/a/type", "/a" ],
3561+
[ "Annotation", "/properties", "#/properties", "" ],
3562+
[ "AssertionTypeStrict", "/type", "#/type", "" ]
3563+
],
3564+
"post": [
3565+
[ true, "LoopPropertiesStartsWith", "/patternProperties", "#/patternProperties", "" ],
3566+
[ true, "AssertionTypeStrict", "/properties/a/type", "#/properties/a/type", "/a" ],
3567+
[ true, "Annotation", "/properties", "#/properties", "", "a" ],
3568+
[ true, "LogicalWhenType", "/properties", "#/properties", "" ],
3569+
[ true, "AssertionTypeStrict", "/type", "#/type", "" ]
3570+
],
3571+
"descriptions": [
3572+
"The object properties that start with the string \"b\" were expected to validate against the defined pattern property subschema",
3573+
"The value was expected to be of type string",
3574+
"The object property \"a\" successfully validated against its property subschema",
3575+
"The object value was expected to validate against the single defined property subschema",
3576+
"The value was expected to be of type object"
3577+
]
3578+
}
3579+
},
3580+
{
3581+
"description": "assertion_object_properties_simple_no_fusion_additional_properties_false",
3582+
"schema": {
3583+
"$schema": "https://json-schema.org/draft/2020-12/schema",
3584+
"type": "object",
3585+
"properties": { "a": { "type": "string" } },
3586+
"additionalProperties": false
3587+
},
3588+
"instance": { "a": "hello" },
3589+
"valid": true,
3590+
"fast": {
3591+
"pre": [
3592+
[ "LoopPropertiesMatchClosed", "/properties", "#/properties", "" ],
3593+
[ "AssertionPropertyTypeStrict", "/properties/a/type", "#/properties/a/type", "/a" ],
3594+
[ "AssertionTypeStrict", "/type", "#/type", "" ]
3595+
],
3596+
"post": [
3597+
[ true, "AssertionPropertyTypeStrict", "/properties/a/type", "#/properties/a/type", "/a" ],
3598+
[ true, "LoopPropertiesMatchClosed", "/properties", "#/properties", "" ],
3599+
[ true, "AssertionTypeStrict", "/type", "#/type", "" ]
3600+
],
3601+
"descriptions": [
3602+
"The value was expected to be of type string",
3603+
"The object value was expected to validate against the single defined property subschema",
3604+
"The value was expected to be of type object"
3605+
]
3606+
},
3607+
"exhaustive": {
3608+
"pre": [
3609+
[ "LoopPropertiesMatch", "/properties", "#/properties", "" ],
3610+
[ "AssertionTypeStrict", "/properties/a/type", "#/properties/a/type", "/a" ],
3611+
[ "Annotation", "/properties", "#/properties", "" ],
3612+
[ "LoopPropertiesExcept", "/additionalProperties", "#/additionalProperties", "" ],
3613+
[ "AssertionTypeStrict", "/type", "#/type", "" ]
3614+
],
3615+
"post": [
3616+
[ true, "AssertionTypeStrict", "/properties/a/type", "#/properties/a/type", "/a" ],
3617+
[ true, "Annotation", "/properties", "#/properties", "", "a" ],
3618+
[ true, "LoopPropertiesMatch", "/properties", "#/properties", "" ],
3619+
[ true, "LoopPropertiesExcept", "/additionalProperties", "#/additionalProperties", "" ],
3620+
[ true, "AssertionTypeStrict", "/type", "#/type", "" ]
3621+
],
3622+
"descriptions": [
3623+
"The value was expected to be of type string",
3624+
"The object property \"a\" successfully validated against its property subschema",
3625+
"The object value was expected to validate against the single defined property subschema",
3626+
"The object value was not expected to define additional properties",
3627+
"The value was expected to be of type object"
3628+
]
3629+
}
3630+
},
3631+
{
3632+
"description": "assertion_object_properties_simple_no_fusion_any_of",
3633+
"schema": {
3634+
"$schema": "https://json-schema.org/draft/2020-12/schema",
3635+
"type": "object",
3636+
"properties": { "a": { "type": "string" } },
3637+
"anyOf": [ { "required": [ "a" ] } ]
3638+
},
3639+
"instance": { "a": "hello" },
3640+
"valid": true,
3641+
"fast": {
3642+
"pre": [
3643+
[ "LogicalOr", "/anyOf", "#/anyOf", "" ],
3644+
[ "AssertionDefines", "/anyOf/0/required", "#/anyOf/0/required", "" ],
3645+
[ "AssertionPropertyTypeStrict", "/properties/a/type", "#/properties/a/type", "/a" ],
3646+
[ "AssertionTypeStrict", "/type", "#/type", "" ]
3647+
],
3648+
"post": [
3649+
[ true, "AssertionDefines", "/anyOf/0/required", "#/anyOf/0/required", "" ],
3650+
[ true, "LogicalOr", "/anyOf", "#/anyOf", "" ],
3651+
[ true, "AssertionPropertyTypeStrict", "/properties/a/type", "#/properties/a/type", "/a" ],
3652+
[ true, "AssertionTypeStrict", "/type", "#/type", "" ]
3653+
],
3654+
"descriptions": [
3655+
"The object value was expected to define the property \"a\"",
3656+
"The object value was expected to validate against the given subschema",
3657+
"The value was expected to be of type string",
3658+
"The value was expected to be of type object"
3659+
]
3660+
},
3661+
"exhaustive": {
3662+
"pre": [
3663+
[ "LogicalOr", "/anyOf", "#/anyOf", "" ],
3664+
[ "AssertionDefines", "/anyOf/0/required", "#/anyOf/0/required", "" ],
3665+
[ "LogicalWhenType", "/properties", "#/properties", "" ],
3666+
[ "AssertionTypeStrict", "/properties/a/type", "#/properties/a/type", "/a" ],
3667+
[ "Annotation", "/properties", "#/properties", "" ],
3668+
[ "AssertionTypeStrict", "/type", "#/type", "" ]
3669+
],
3670+
"post": [
3671+
[ true, "AssertionDefines", "/anyOf/0/required", "#/anyOf/0/required", "" ],
3672+
[ true, "LogicalOr", "/anyOf", "#/anyOf", "" ],
3673+
[ true, "AssertionTypeStrict", "/properties/a/type", "#/properties/a/type", "/a" ],
3674+
[ true, "Annotation", "/properties", "#/properties", "", "a" ],
3675+
[ true, "LogicalWhenType", "/properties", "#/properties", "" ],
3676+
[ true, "AssertionTypeStrict", "/type", "#/type", "" ]
3677+
],
3678+
"descriptions": [
3679+
"The object value was expected to define the property \"a\"",
3680+
"The object value was expected to validate against the given subschema",
3681+
"The value was expected to be of type string",
3682+
"The object property \"a\" successfully validated against its property subschema",
3683+
"The object value was expected to validate against the single defined property subschema",
3684+
"The value was expected to be of type object"
3685+
]
3686+
}
3687+
},
3688+
{
3689+
"description": "assertion_object_properties_simple_no_fusion_min_properties",
3690+
"schema": {
3691+
"$schema": "https://json-schema.org/draft/2020-12/schema",
3692+
"type": "object",
3693+
"properties": { "a": { "type": "string" } },
3694+
"minProperties": 1
3695+
},
3696+
"instance": { "a": "hello" },
3697+
"valid": true,
3698+
"fast": {
3699+
"pre": [
3700+
[ "AssertionPropertyTypeStrict", "/properties/a/type", "#/properties/a/type", "/a" ],
3701+
[ "AssertionTypeObjectBounded", "/type", "#/type", "" ]
3702+
],
3703+
"post": [
3704+
[ true, "AssertionPropertyTypeStrict", "/properties/a/type", "#/properties/a/type", "/a" ],
3705+
[ true, "AssertionTypeObjectBounded", "/type", "#/type", "" ]
3706+
],
3707+
"descriptions": [
3708+
"The value was expected to be of type string",
3709+
"The value was expected to consist of an object of at least 1 property"
3710+
]
3711+
},
3712+
"exhaustive": {
3713+
"pre": [
3714+
[ "AssertionObjectSizeGreater", "/minProperties", "#/minProperties", "" ],
3715+
[ "LogicalWhenType", "/properties", "#/properties", "" ],
3716+
[ "AssertionTypeStrict", "/properties/a/type", "#/properties/a/type", "/a" ],
3717+
[ "Annotation", "/properties", "#/properties", "" ],
3718+
[ "AssertionTypeStrict", "/type", "#/type", "" ]
3719+
],
3720+
"post": [
3721+
[ true, "AssertionObjectSizeGreater", "/minProperties", "#/minProperties", "" ],
3722+
[ true, "AssertionTypeStrict", "/properties/a/type", "#/properties/a/type", "/a" ],
3723+
[ true, "Annotation", "/properties", "#/properties", "", "a" ],
3724+
[ true, "LogicalWhenType", "/properties", "#/properties", "" ],
3725+
[ true, "AssertionTypeStrict", "/type", "#/type", "" ]
3726+
],
3727+
"descriptions": [
3728+
"The object value was expected to contain at least 1 property and it contained 1 property: \"a\"",
3729+
"The value was expected to be of type string",
3730+
"The object property \"a\" successfully validated against its property subschema",
3731+
"The object value was expected to validate against the single defined property subschema",
3732+
"The value was expected to be of type object"
3733+
]
3734+
}
35283735
}
35293736
]

0 commit comments

Comments
 (0)