xref: /freebsd/contrib/libucl/tests/schema/ref.json (revision 97bd480fe38abb5950359b9d864a62037b4ab5f7)
1*97bd480fSBaptiste Daroussin[
2*97bd480fSBaptiste Daroussin    {
3*97bd480fSBaptiste Daroussin        "description": "root pointer ref",
4*97bd480fSBaptiste Daroussin        "schema": {
5*97bd480fSBaptiste Daroussin            "properties": {
6*97bd480fSBaptiste Daroussin                "foo": {"$ref": "#"}
7*97bd480fSBaptiste Daroussin            },
8*97bd480fSBaptiste Daroussin            "additionalProperties": false
9*97bd480fSBaptiste Daroussin        },
10*97bd480fSBaptiste Daroussin        "tests": [
11*97bd480fSBaptiste Daroussin            {
12*97bd480fSBaptiste Daroussin                "description": "match",
13*97bd480fSBaptiste Daroussin                "data": {"foo": false},
14*97bd480fSBaptiste Daroussin                "valid": true
15*97bd480fSBaptiste Daroussin            },
16*97bd480fSBaptiste Daroussin            {
17*97bd480fSBaptiste Daroussin                "description": "recursive match",
18*97bd480fSBaptiste Daroussin                "data": {"foo": {"foo": false}},
19*97bd480fSBaptiste Daroussin                "valid": true
20*97bd480fSBaptiste Daroussin            },
21*97bd480fSBaptiste Daroussin            {
22*97bd480fSBaptiste Daroussin                "description": "mismatch",
23*97bd480fSBaptiste Daroussin                "data": {"bar": false},
24*97bd480fSBaptiste Daroussin                "valid": false
25*97bd480fSBaptiste Daroussin            },
26*97bd480fSBaptiste Daroussin            {
27*97bd480fSBaptiste Daroussin                "description": "recursive mismatch",
28*97bd480fSBaptiste Daroussin                "data": {"foo": {"bar": false}},
29*97bd480fSBaptiste Daroussin                "valid": false
30*97bd480fSBaptiste Daroussin            }
31*97bd480fSBaptiste Daroussin        ]
32*97bd480fSBaptiste Daroussin    },
33*97bd480fSBaptiste Daroussin    {
34*97bd480fSBaptiste Daroussin        "description": "relative pointer ref to object",
35*97bd480fSBaptiste Daroussin        "schema": {
36*97bd480fSBaptiste Daroussin            "properties": {
37*97bd480fSBaptiste Daroussin                "foo": {"type": "integer"},
38*97bd480fSBaptiste Daroussin                "bar": {"$ref": "#/properties/foo"}
39*97bd480fSBaptiste Daroussin            }
40*97bd480fSBaptiste Daroussin        },
41*97bd480fSBaptiste Daroussin        "tests": [
42*97bd480fSBaptiste Daroussin            {
43*97bd480fSBaptiste Daroussin                "description": "match",
44*97bd480fSBaptiste Daroussin                "data": {"bar": 3},
45*97bd480fSBaptiste Daroussin                "valid": true
46*97bd480fSBaptiste Daroussin            },
47*97bd480fSBaptiste Daroussin            {
48*97bd480fSBaptiste Daroussin                "description": "mismatch",
49*97bd480fSBaptiste Daroussin                "data": {"bar": true},
50*97bd480fSBaptiste Daroussin                "valid": false
51*97bd480fSBaptiste Daroussin            }
52*97bd480fSBaptiste Daroussin        ]
53*97bd480fSBaptiste Daroussin    },
54*97bd480fSBaptiste Daroussin    {
55*97bd480fSBaptiste Daroussin        "description": "relative pointer ref to array",
56*97bd480fSBaptiste Daroussin        "schema": {
57*97bd480fSBaptiste Daroussin            "items": [
58*97bd480fSBaptiste Daroussin                {"type": "integer"},
59*97bd480fSBaptiste Daroussin                {"$ref": "#/items/0"}
60*97bd480fSBaptiste Daroussin            ]
61*97bd480fSBaptiste Daroussin        },
62*97bd480fSBaptiste Daroussin        "tests": [
63*97bd480fSBaptiste Daroussin            {
64*97bd480fSBaptiste Daroussin                "description": "match array",
65*97bd480fSBaptiste Daroussin                "data": [1, 2],
66*97bd480fSBaptiste Daroussin                "valid": true
67*97bd480fSBaptiste Daroussin            },
68*97bd480fSBaptiste Daroussin            {
69*97bd480fSBaptiste Daroussin                "description": "mismatch array",
70*97bd480fSBaptiste Daroussin                "data": [1, "foo"],
71*97bd480fSBaptiste Daroussin                "valid": false
72*97bd480fSBaptiste Daroussin            }
73*97bd480fSBaptiste Daroussin        ]
74*97bd480fSBaptiste Daroussin    },
75*97bd480fSBaptiste Daroussin    {
76*97bd480fSBaptiste Daroussin        "description": "escaped pointer ref",
77*97bd480fSBaptiste Daroussin        "schema": {
78*97bd480fSBaptiste Daroussin            "tilda~field": {"type": "integer"},
79*97bd480fSBaptiste Daroussin            "slash/field": {"type": "integer"},
80*97bd480fSBaptiste Daroussin            "percent%field": {"type": "integer"},
81*97bd480fSBaptiste Daroussin            "properties": {
82*97bd480fSBaptiste Daroussin                "tilda": {"$ref": "#/tilda~0field"},
83*97bd480fSBaptiste Daroussin                "slash": {"$ref": "#/slash~1field"},
84*97bd480fSBaptiste Daroussin                "percent": {"$ref": "#/percent%25field"}
85*97bd480fSBaptiste Daroussin            }
86*97bd480fSBaptiste Daroussin        },
87*97bd480fSBaptiste Daroussin        "tests": [
88*97bd480fSBaptiste Daroussin            {
89*97bd480fSBaptiste Daroussin                "description": "slash",
90*97bd480fSBaptiste Daroussin                "data": {"slash": "aoeu"},
91*97bd480fSBaptiste Daroussin                "valid": false
92*97bd480fSBaptiste Daroussin            },
93*97bd480fSBaptiste Daroussin            {
94*97bd480fSBaptiste Daroussin                "description": "tilda",
95*97bd480fSBaptiste Daroussin                "data": {"tilda": "aoeu"},
96*97bd480fSBaptiste Daroussin                "valid": false
97*97bd480fSBaptiste Daroussin            },
98*97bd480fSBaptiste Daroussin            {
99*97bd480fSBaptiste Daroussin                "description": "percent",
100*97bd480fSBaptiste Daroussin                "data": {"percent": "aoeu"},
101*97bd480fSBaptiste Daroussin                "valid": false
102*97bd480fSBaptiste Daroussin            }
103*97bd480fSBaptiste Daroussin        ]
104*97bd480fSBaptiste Daroussin    },
105*97bd480fSBaptiste Daroussin    {
106*97bd480fSBaptiste Daroussin        "description": "nested refs",
107*97bd480fSBaptiste Daroussin        "schema": {
108*97bd480fSBaptiste Daroussin            "definitions": {
109*97bd480fSBaptiste Daroussin                "a": {"type": "integer"},
110*97bd480fSBaptiste Daroussin                "b": {"$ref": "#/definitions/a"},
111*97bd480fSBaptiste Daroussin                "c": {"$ref": "#/definitions/b"}
112*97bd480fSBaptiste Daroussin            },
113*97bd480fSBaptiste Daroussin            "$ref": "#/definitions/c"
114*97bd480fSBaptiste Daroussin        },
115*97bd480fSBaptiste Daroussin        "tests": [
116*97bd480fSBaptiste Daroussin            {
117*97bd480fSBaptiste Daroussin                "description": "nested ref valid",
118*97bd480fSBaptiste Daroussin                "data": 5,
119*97bd480fSBaptiste Daroussin                "valid": true
120*97bd480fSBaptiste Daroussin            },
121*97bd480fSBaptiste Daroussin            {
122*97bd480fSBaptiste Daroussin                "description": "nested ref invalid",
123*97bd480fSBaptiste Daroussin                "data": "a",
124*97bd480fSBaptiste Daroussin                "valid": false
125*97bd480fSBaptiste Daroussin            }
126*97bd480fSBaptiste Daroussin        ]
127*97bd480fSBaptiste Daroussin    },
128*97bd480fSBaptiste Daroussin/*
129*97bd480fSBaptiste Daroussin    {
130*97bd480fSBaptiste Daroussin        "description": "remote ref, containing refs itself",
131*97bd480fSBaptiste Daroussin        "schema": {"$ref": "http://json-schema.org/draft-04/schema#"},
132*97bd480fSBaptiste Daroussin        "tests": [
133*97bd480fSBaptiste Daroussin            {
134*97bd480fSBaptiste Daroussin                "description": "remote ref valid",
135*97bd480fSBaptiste Daroussin                "data": {"minLength": 1},
136*97bd480fSBaptiste Daroussin                "valid": true
137*97bd480fSBaptiste Daroussin            },
138*97bd480fSBaptiste Daroussin            {
139*97bd480fSBaptiste Daroussin                "description": "remote ref invalid",
140*97bd480fSBaptiste Daroussin                "data": {"minLength": -1},
141*97bd480fSBaptiste Daroussin                "valid": false
142*97bd480fSBaptiste Daroussin            }
143*97bd480fSBaptiste Daroussin        ]
144*97bd480fSBaptiste Daroussin    }
145*97bd480fSBaptiste Daroussin*/
146*97bd480fSBaptiste Daroussin]
147