xref: /freebsd/contrib/libucl/tests/schema/enum.json (revision 97bd480f)
1*97bd480fSBaptiste Daroussin[
2*97bd480fSBaptiste Daroussin    {
3*97bd480fSBaptiste Daroussin        "description": "simple enum validation",
4*97bd480fSBaptiste Daroussin        "schema": {"enum": [1, 2, 3]},
5*97bd480fSBaptiste Daroussin        "tests": [
6*97bd480fSBaptiste Daroussin            {
7*97bd480fSBaptiste Daroussin                "description": "one of the enum is valid",
8*97bd480fSBaptiste Daroussin                "data": 1,
9*97bd480fSBaptiste Daroussin                "valid": true
10*97bd480fSBaptiste Daroussin            },
11*97bd480fSBaptiste Daroussin            {
12*97bd480fSBaptiste Daroussin                "description": "something else is invalid",
13*97bd480fSBaptiste Daroussin                "data": 4,
14*97bd480fSBaptiste Daroussin                "valid": false
15*97bd480fSBaptiste Daroussin            }
16*97bd480fSBaptiste Daroussin        ]
17*97bd480fSBaptiste Daroussin    },
18*97bd480fSBaptiste Daroussin    {
19*97bd480fSBaptiste Daroussin        "description": "heterogeneous enum validation",
20*97bd480fSBaptiste Daroussin        "schema": {"enum": [6, "foo", [], true, {"foo": 12}]},
21*97bd480fSBaptiste Daroussin        "tests": [
22*97bd480fSBaptiste Daroussin            {
23*97bd480fSBaptiste Daroussin                "description": "one of the enum is valid",
24*97bd480fSBaptiste Daroussin                "data": [],
25*97bd480fSBaptiste Daroussin                "valid": true
26*97bd480fSBaptiste Daroussin            },
27*97bd480fSBaptiste Daroussin            {
28*97bd480fSBaptiste Daroussin                "description": "something else is invalid",
29*97bd480fSBaptiste Daroussin                "data": null,
30*97bd480fSBaptiste Daroussin                "valid": false
31*97bd480fSBaptiste Daroussin            },
32*97bd480fSBaptiste Daroussin            {
33*97bd480fSBaptiste Daroussin                "description": "objects are deep compared",
34*97bd480fSBaptiste Daroussin                "data": {"foo": false},
35*97bd480fSBaptiste Daroussin                "valid": false
36*97bd480fSBaptiste Daroussin            }
37*97bd480fSBaptiste Daroussin        ]
38*97bd480fSBaptiste Daroussin    },
39*97bd480fSBaptiste Daroussin    {
40*97bd480fSBaptiste Daroussin        "description": "enums in properties",
41*97bd480fSBaptiste Daroussin        "schema": {
42*97bd480fSBaptiste Daroussin           "type":"object",
43*97bd480fSBaptiste Daroussin		     "properties": {
44*97bd480fSBaptiste Daroussin		        "foo": {"enum":["foo"]},
45*97bd480fSBaptiste Daroussin		        "bar": {"enum":["bar"]}
46*97bd480fSBaptiste Daroussin		     },
47*97bd480fSBaptiste Daroussin		     "required": ["bar"]
48*97bd480fSBaptiste Daroussin		  },
49*97bd480fSBaptiste Daroussin        "tests": [
50*97bd480fSBaptiste Daroussin            {
51*97bd480fSBaptiste Daroussin                "description": "both properties are valid",
52*97bd480fSBaptiste Daroussin                "data": {"foo":"foo", "bar":"bar"},
53*97bd480fSBaptiste Daroussin                "valid": true
54*97bd480fSBaptiste Daroussin            },
55*97bd480fSBaptiste Daroussin            {
56*97bd480fSBaptiste Daroussin                "description": "missing optional property is valid",
57*97bd480fSBaptiste Daroussin                "data": {"bar":"bar"},
58*97bd480fSBaptiste Daroussin                "valid": true
59*97bd480fSBaptiste Daroussin            },
60*97bd480fSBaptiste Daroussin            {
61*97bd480fSBaptiste Daroussin                "description": "missing required property is invalid",
62*97bd480fSBaptiste Daroussin                "data": {"foo":"foo"},
63*97bd480fSBaptiste Daroussin                "valid": false
64*97bd480fSBaptiste Daroussin            },
65*97bd480fSBaptiste Daroussin            {
66*97bd480fSBaptiste Daroussin                "description": "missing all properties is invalid",
67*97bd480fSBaptiste Daroussin                "data": {},
68*97bd480fSBaptiste Daroussin                "valid": false
69*97bd480fSBaptiste Daroussin            }
70*97bd480fSBaptiste Daroussin        ]
71*97bd480fSBaptiste Daroussin    }
72*97bd480fSBaptiste Daroussin]
73