1[
2 {
3 "description": "simple enum validation",
4 "schema": {"enum": [1, 2, 3]},
5 "tests": [
6 {
7 "description": "one of the enum is valid",
8 "data": 1,
9 "valid": true
10 },
11 {
12 "description": "something else is invalid",
13 "data": 4,
14 "valid": false
15 }
16 ]
17 },
18 {
19 "description": "heterogeneous enum validation",
20 "schema": {"enum": [6, "foo", [], true, {"foo": 12}]},
21 "tests": [
22 {
23 "description": "one of the enum is valid",
24 "data": [],
25 "valid": true
26 },
27 {
28 "description": "something else is invalid",
29 "data": null,
30 "valid": false
31 },
32 {
33 "description": "objects are deep compared",
34 "data": {"foo": false},
35 "valid": false
36 }
37 ]
38 },
39 {
40 "description": "enums in properties",
41 "schema": {
42 "type":"object",
43 "properties": {
44 "foo": {"enum":["foo"]},
45 "bar": {"enum":["bar"]}
46 },
47 "required": ["bar"]
48 },
49 "tests": [
50 {
51 "description": "both properties are valid",
52 "data": {"foo":"foo", "bar":"bar"},
53 "valid": true
54 },
55 {
56 "description": "wrong foo value",
57 "data": {"foo":"foot", "bar":"bar"},
58 "valid": false
59 },
60 {
61 "description": "wrong bar value",
62 "data": {"foo":"foo", "bar":"bart"},
63 "valid": false
64 },
65 {
66 "description": "missing optional property is valid",
67 "data": {"bar":"bar"},
68 "valid": true
69 },
70 {
71 "description": "missing required property is invalid",
72 "data": {"foo":"foo"},
73 "valid": false
74 },
75 {
76 "description": "missing all properties is invalid",
77 "data": {},
78 "valid": false
79 }
80 ]
81 },
82 {
83 "description": "enum with escaped characters",
84 "schema": {
85 "enum": ["foo\nbar", "foo\rbar"]
86 },
87 "tests": [
88 {
89 "description": "member 1 is valid",
90 "data": "foo\nbar",
91 "valid": true
92 },
93 {
94 "description": "member 2 is valid",
95 "data": "foo\rbar",
96 "valid": true
97 },
98 {
99 "description": "another string is invalid",
100 "data": "abc",
101 "valid": false
102 }
103 ]
104 },
105 {
106 "description": "enum with false does not match 0",
107 "schema": {"enum": [false]},
108 "tests": [
109 {
110 "description": "false is valid",
111 "data": false,
112 "valid": true
113 },
114 {
115 "description": "integer zero is invalid",
116 "data": 0,
117 "valid": false
118 },
119 {
120 "description": "float zero is invalid",
121 "data": 0.0,
122 "valid": false
123 }
124 ]
125 },
126 {
127 "description": "enum with true does not match 1",
128 "schema": {"enum": [true]},
129 "tests": [
130 {
131 "description": "true is valid",
132 "data": true,
133 "valid": true
134 },
135 {
136 "description": "integer one is invalid",
137 "data": 1,
138 "valid": false
139 },
140 {
141 "description": "float one is invalid",
142 "data": 1.0,
143 "valid": false
144 }
145 ]
146 },
147 {
148 "description": "enum with 0 does not match false",
149 "schema": {"enum": [0]},
150 "tests": [
151 {
152 "description": "false is invalid",
153 "data": false,
154 "valid": false
155 },
156 {
157 "description": "integer zero is valid",
158 "data": 0,
159 "valid": true
160 },
161 {
162 "description": "float zero is valid",
163 "data": 0.0,
164 "valid": true
165 }
166 ]
167 },
168 {
169 "description": "enum with 1 does not match true",
170 "schema": {"enum": [1]},
171 "tests": [
172 {
173 "description": "true is invalid",
174 "data": true,
175 "valid": false
176 },
177 {
178 "description": "integer one is valid",
179 "data": 1,
180 "valid": true
181 },
182 {
183 "description": "float one is valid",
184 "data": 1.0,
185 "valid": true
186 }
187 ]
188 }
189]
View as plain text