...

Text file src/github.com/qri-io/jsonschema/testdata/draft7/patternProperties.json

Documentation: github.com/qri-io/jsonschema/testdata/draft7

     1[
     2    {
     3        "description":
     4            "patternProperties validates properties matching a regex",
     5        "schema": {
     6            "patternProperties": {
     7                "f.*o": {"type": "integer"}
     8            }
     9        },
    10        "tests": [
    11            {
    12                "description": "a single valid match is valid",
    13                "data": {"foo": 1},
    14                "valid": true
    15            },
    16            {
    17                "description": "multiple valid matches is valid",
    18                "data": {"foo": 1, "foooooo" : 2},
    19                "valid": true
    20            },
    21            {
    22                "description": "a single invalid match is invalid",
    23                "data": {"foo": "bar", "fooooo": 2},
    24                "valid": false
    25            },
    26            {
    27                "description": "multiple invalid matches is invalid",
    28                "data": {"foo": "bar", "foooooo" : "baz"},
    29                "valid": false
    30            },
    31            {
    32                "description": "ignores arrays",
    33                "data": ["foo"],
    34                "valid": true
    35            },
    36            {
    37                "description": "ignores strings",
    38                "data": "foo",
    39                "valid": true
    40            },
    41            {
    42                "description": "ignores other non-objects",
    43                "data": 12,
    44                "valid": true
    45            }
    46        ]
    47    },
    48    {
    49        "description": "multiple simultaneous patternProperties are validated",
    50        "schema": {
    51            "patternProperties": {
    52                "a*": {"type": "integer"},
    53                "aaa*": {"maximum": 20}
    54            }
    55        },
    56        "tests": [
    57            {
    58                "description": "a single valid match is valid",
    59                "data": {"a": 21},
    60                "valid": true
    61            },
    62            {
    63                "description": "a simultaneous match is valid",
    64                "data": {"aaaa": 18},
    65                "valid": true
    66            },
    67            {
    68                "description": "multiple matches is valid",
    69                "data": {"a": 21, "aaaa": 18},
    70                "valid": true
    71            },
    72            {
    73                "description": "an invalid due to one is invalid",
    74                "data": {"a": "bar"},
    75                "valid": false
    76            },
    77            {
    78                "description": "an invalid due to the other is invalid",
    79                "data": {"aaaa": 31},
    80                "valid": false
    81            },
    82            {
    83                "description": "an invalid due to both is invalid",
    84                "data": {"aaa": "foo", "aaaa": 31},
    85                "valid": false
    86            }
    87        ]
    88    },
    89    {
    90        "description": "regexes are not anchored by default and are case sensitive",
    91        "schema": {
    92            "patternProperties": {
    93                "[0-9]{2,}": { "type": "boolean" },
    94                "X_": { "type": "string" }
    95            }
    96        },
    97        "tests": [
    98            {
    99                "description": "non recognized members are ignored",
   100                "data": { "answer 1": "42" },
   101                "valid": true
   102            },
   103            {
   104                "description": "recognized members are accounted for",
   105                "data": { "a31b": null },
   106                "valid": false
   107            },
   108            {
   109                "description": "regexes are case sensitive",
   110                "data": { "a_x_3": 3 },
   111                "valid": true
   112            },
   113            {
   114                "description": "regexes are case sensitive, 2",
   115                "data": { "a_X_3": 3 },
   116                "valid": false
   117            }
   118        ]
   119    },
   120    {
   121        "description": "patternProperties with boolean schemas",
   122        "schema": {
   123            "patternProperties": {
   124                "f.*": true,
   125                "b.*": false
   126            }
   127        },
   128        "tests": [
   129            {
   130                "description": "object with property matching schema true is valid",
   131                "data": {"foo": 1},
   132                "valid": true
   133            },
   134            {
   135                "description": "object with property matching schema false is invalid",
   136                "data": {"bar": 2},
   137                "valid": false
   138            },
   139            {
   140                "description": "object with both properties is invalid",
   141                "data": {"foo": 1, "bar": 2},
   142                "valid": false
   143            },
   144            {
   145                "description": "empty object is valid",
   146                "data": {},
   147                "valid": true
   148            }
   149        ]
   150    }
   151]

View as plain text