xref: /freebsd/contrib/libucl/tests/schema/allOf.json (revision 97bd480f)
1*97bd480fSBaptiste Daroussin[
2*97bd480fSBaptiste Daroussin    {
3*97bd480fSBaptiste Daroussin        "description": "allOf",
4*97bd480fSBaptiste Daroussin        "schema": {
5*97bd480fSBaptiste Daroussin            "allOf": [
6*97bd480fSBaptiste Daroussin                {
7*97bd480fSBaptiste Daroussin                    "properties": {
8*97bd480fSBaptiste Daroussin                        "bar": {"type": "integer"}
9*97bd480fSBaptiste Daroussin                    },
10*97bd480fSBaptiste Daroussin                    "required": ["bar"]
11*97bd480fSBaptiste Daroussin                },
12*97bd480fSBaptiste Daroussin                {
13*97bd480fSBaptiste Daroussin                    "properties": {
14*97bd480fSBaptiste Daroussin                        "foo": {"type": "string"}
15*97bd480fSBaptiste Daroussin                    },
16*97bd480fSBaptiste Daroussin                    "required": ["foo"]
17*97bd480fSBaptiste Daroussin                }
18*97bd480fSBaptiste Daroussin            ]
19*97bd480fSBaptiste Daroussin        },
20*97bd480fSBaptiste Daroussin        "tests": [
21*97bd480fSBaptiste Daroussin            {
22*97bd480fSBaptiste Daroussin                "description": "allOf",
23*97bd480fSBaptiste Daroussin                "data": {"foo": "baz", "bar": 2},
24*97bd480fSBaptiste Daroussin                "valid": true
25*97bd480fSBaptiste Daroussin            },
26*97bd480fSBaptiste Daroussin            {
27*97bd480fSBaptiste Daroussin                "description": "mismatch second",
28*97bd480fSBaptiste Daroussin                "data": {"foo": "baz"},
29*97bd480fSBaptiste Daroussin                "valid": false
30*97bd480fSBaptiste Daroussin            },
31*97bd480fSBaptiste Daroussin            {
32*97bd480fSBaptiste Daroussin                "description": "mismatch first",
33*97bd480fSBaptiste Daroussin                "data": {"bar": 2},
34*97bd480fSBaptiste Daroussin                "valid": false
35*97bd480fSBaptiste Daroussin            },
36*97bd480fSBaptiste Daroussin            {
37*97bd480fSBaptiste Daroussin                "description": "wrong type",
38*97bd480fSBaptiste Daroussin                "data": {"foo": "baz", "bar": "quux"},
39*97bd480fSBaptiste Daroussin                "valid": false
40*97bd480fSBaptiste Daroussin            }
41*97bd480fSBaptiste Daroussin        ]
42*97bd480fSBaptiste Daroussin    },
43*97bd480fSBaptiste Daroussin    {
44*97bd480fSBaptiste Daroussin        "description": "allOf with base schema",
45*97bd480fSBaptiste Daroussin        "schema": {
46*97bd480fSBaptiste Daroussin            "properties": {"bar": {"type": "integer"}},
47*97bd480fSBaptiste Daroussin            "required": ["bar"],
48*97bd480fSBaptiste Daroussin            "allOf" : [
49*97bd480fSBaptiste Daroussin                {
50*97bd480fSBaptiste Daroussin                    "properties": {
51*97bd480fSBaptiste Daroussin                        "foo": {"type": "string"}
52*97bd480fSBaptiste Daroussin                    },
53*97bd480fSBaptiste Daroussin                    "required": ["foo"]
54*97bd480fSBaptiste Daroussin                },
55*97bd480fSBaptiste Daroussin                {
56*97bd480fSBaptiste Daroussin                    "properties": {
57*97bd480fSBaptiste Daroussin                        "baz": {"type": "null"}
58*97bd480fSBaptiste Daroussin                    },
59*97bd480fSBaptiste Daroussin                    "required": ["baz"]
60*97bd480fSBaptiste Daroussin                }
61*97bd480fSBaptiste Daroussin            ]
62*97bd480fSBaptiste Daroussin        },
63*97bd480fSBaptiste Daroussin        "tests": [
64*97bd480fSBaptiste Daroussin            {
65*97bd480fSBaptiste Daroussin                "description": "valid",
66*97bd480fSBaptiste Daroussin                "data": {"foo": "quux", "bar": 2, "baz": null},
67*97bd480fSBaptiste Daroussin                "valid": true
68*97bd480fSBaptiste Daroussin            },
69*97bd480fSBaptiste Daroussin            {
70*97bd480fSBaptiste Daroussin                "description": "mismatch base schema",
71*97bd480fSBaptiste Daroussin                "data": {"foo": "quux", "baz": null},
72*97bd480fSBaptiste Daroussin                "valid": false
73*97bd480fSBaptiste Daroussin            },
74*97bd480fSBaptiste Daroussin            {
75*97bd480fSBaptiste Daroussin                "description": "mismatch first allOf",
76*97bd480fSBaptiste Daroussin                "data": {"bar": 2, "baz": null},
77*97bd480fSBaptiste Daroussin                "valid": false
78*97bd480fSBaptiste Daroussin            },
79*97bd480fSBaptiste Daroussin            {
80*97bd480fSBaptiste Daroussin                "description": "mismatch second allOf",
81*97bd480fSBaptiste Daroussin                "data": {"foo": "quux", "bar": 2},
82*97bd480fSBaptiste Daroussin                "valid": false
83*97bd480fSBaptiste Daroussin            },
84*97bd480fSBaptiste Daroussin            {
85*97bd480fSBaptiste Daroussin                "description": "mismatch both",
86*97bd480fSBaptiste Daroussin                "data": {"bar": 2},
87*97bd480fSBaptiste Daroussin                "valid": false
88*97bd480fSBaptiste Daroussin            }
89*97bd480fSBaptiste Daroussin        ]
90*97bd480fSBaptiste Daroussin    },
91*97bd480fSBaptiste Daroussin    {
92*97bd480fSBaptiste Daroussin        "description": "allOf simple types",
93*97bd480fSBaptiste Daroussin        "schema": {
94*97bd480fSBaptiste Daroussin            "allOf": [
95*97bd480fSBaptiste Daroussin                {"maximum": 30},
96*97bd480fSBaptiste Daroussin                {"minimum": 20}
97*97bd480fSBaptiste Daroussin            ]
98*97bd480fSBaptiste Daroussin        },
99*97bd480fSBaptiste Daroussin        "tests": [
100*97bd480fSBaptiste Daroussin            {
101*97bd480fSBaptiste Daroussin                "description": "valid",
102*97bd480fSBaptiste Daroussin                "data": 25,
103*97bd480fSBaptiste Daroussin                "valid": true
104*97bd480fSBaptiste Daroussin            },
105*97bd480fSBaptiste Daroussin            {
106*97bd480fSBaptiste Daroussin                "description": "mismatch one",
107*97bd480fSBaptiste Daroussin                "data": 35,
108*97bd480fSBaptiste Daroussin                "valid": false
109*97bd480fSBaptiste Daroussin            }
110*97bd480fSBaptiste Daroussin        ]
111*97bd480fSBaptiste Daroussin    }
112*97bd480fSBaptiste Daroussin]
113