...

Text file src/github.com/go-openapi/validate/fixtures/jsonschema_suite/ref.json

Documentation: github.com/go-openapi/validate/fixtures/jsonschema_suite

     1[
     2    {
     3        "description": "root pointer ref",
     4        "schema": {
     5            "properties": {
     6                "foo": {"$ref": "#"}
     7            },
     8            "additionalProperties": false
     9        },
    10        "tests": [
    11            {
    12                "description": "match",
    13                "data": {"foo": false},
    14                "valid": true
    15            },
    16            {
    17                "description": "recursive match",
    18                "data": {"foo": {"foo": false}},
    19                "valid": true
    20            },
    21            {
    22                "description": "mismatch",
    23                "data": {"bar": false},
    24                "valid": false
    25            },
    26            {
    27                "description": "recursive mismatch",
    28                "data": {"foo": {"bar": false}},
    29                "valid": false
    30            }
    31        ]
    32    },
    33    {
    34        "description": "relative pointer ref to object",
    35        "schema": {
    36            "properties": {
    37                "foo": {"type": "integer"},
    38                "bar": {"$ref": "#/properties/foo"}
    39            }
    40        },
    41        "tests": [
    42            {
    43                "description": "match",
    44                "data": {"bar": 3},
    45                "valid": true
    46            },
    47            {
    48                "description": "mismatch",
    49                "data": {"bar": true},
    50                "valid": false
    51            }
    52        ]
    53    },
    54    {
    55        "description": "relative pointer ref to array",
    56        "schema": {
    57            "items": [
    58                {"type": "integer"},
    59                {"$ref": "#/items/0"}
    60            ]
    61        },
    62        "tests": [
    63            {
    64                "description": "match array",
    65                "data": [1, 2],
    66                "valid": true
    67            },
    68            {
    69                "description": "mismatch array",
    70                "data": [1, "foo"],
    71                "valid": false
    72            }
    73        ]
    74    },
    75    {
    76        "description": "escaped pointer ref",
    77        "schema": {
    78            "tilda~field": {"type": "integer"},
    79            "slash/field": {"type": "integer"},
    80            "percent%field": {"type": "integer"},
    81            "properties": {
    82                "tilda": {"$ref": "#/tilda~0field"},
    83                "slash": {"$ref": "#/slash~1field"},
    84                "percent": {"$ref": "#/percent%25field"}
    85            }
    86        },
    87        "tests": [
    88            {
    89                "description": "slash invalid",
    90                "data": {"slash": "aoeu"},
    91                "valid": false
    92            },
    93            {
    94                "description": "tilda invalid",
    95                "data": {"tilda": "aoeu"},
    96                "valid": false
    97            },
    98            {
    99                "description": "percent invalid",
   100                "data": {"percent": "aoeu"},
   101                "valid": false
   102            },
   103            {
   104                "description": "slash valid",
   105                "data": {"slash": 123},
   106                "valid": true
   107            },
   108            {
   109                "description": "tilda valid",
   110                "data": {"tilda": 123},
   111                "valid": true
   112            },
   113            {
   114                "description": "percent valid",
   115                "data": {"percent": 123},
   116                "valid": true
   117            }
   118        ]
   119    },
   120    {
   121        "description": "nested refs",
   122        "schema": {
   123            "definitions": {
   124                "a": {"type": "integer"},
   125                "b": {"$ref": "#/definitions/a"},
   126                "c": {"$ref": "#/definitions/b"}
   127            },
   128            "$ref": "#/definitions/c"
   129        },
   130        "tests": [
   131            {
   132                "description": "nested ref valid",
   133                "data": 5,
   134                "valid": true
   135            },
   136            {
   137                "description": "nested ref invalid",
   138                "data": "a",
   139                "valid": false
   140            }
   141        ]
   142    },
   143    {
   144        "description": "ref overrides any sibling keywords",
   145        "schema": {
   146            "definitions": {
   147                "reffed": {
   148                    "type": "array"
   149                }
   150            },
   151            "properties": {
   152                "foo": {
   153                    "$ref": "#/definitions/reffed",
   154                    "maxItems": 2
   155                }
   156            }
   157        },
   158        "tests": [
   159            {
   160                "description": "ref valid",
   161                "data": { "foo": [] },
   162                "valid": true
   163            },
   164            {
   165                "description": "ref valid, maxItems ignored",
   166                "data": { "foo": [ 1, 2, 3] },
   167                "valid": true
   168            },
   169            {
   170                "description": "ref invalid",
   171                "data": { "foo": "string" },
   172                "valid": false
   173            }
   174        ]
   175    },
   176    {
   177        "description": "remote ref, containing refs itself",
   178        "schema": {"$ref": "http://json-schema.org/draft-04/schema#"},
   179        "tests": [
   180            {
   181                "description": "remote ref valid",
   182                "data": {"minLength": 1},
   183                "valid": true
   184            },
   185            {
   186                "description": "remote ref invalid",
   187                "data": {"minLength": -1},
   188                "valid": false
   189            }
   190        ]
   191    },
   192    {
   193        "description": "property named $ref that is not a reference",
   194        "schema": {
   195            "properties": {
   196                "$ref": {"type": "string"}
   197            }
   198        },
   199        "tests": [
   200            {
   201                "description": "property named $ref valid",
   202                "data": {"$ref": "a"},
   203                "valid": true
   204            },
   205            {
   206                "description": "property named $ref invalid",
   207                "data": {"$ref": 2},
   208                "valid": false
   209            }
   210        ]
   211    }
   212]

View as plain text