1+ [
2+ {
3+ "description" : " Simple if (incomplete structure, without THEN and ELSE, no validation is performed)" ,
4+ "schema" : {
5+ "then" : {
6+ "properties" : {
7+ "foo" : { "maximum" : 3.0 }
8+ }
9+ },
10+ "else" : {
11+ "properties" : {
12+ "foo" : { "maximum" : 3.0 }
13+ }
14+ }
15+ },
16+ "tests" : [
17+ {
18+ "description" : " if valid" ,
19+ "data" : { "foo" : 2.9 },
20+ "valid" : true
21+ },
22+ {
23+ "description" : " if invalid" ,
24+ "data" : { "foo" : 3.1 },
25+ "valid" : true
26+ }
27+ ]
28+ },
29+ {
30+ "description" : " Simple if (incomplete structure, without THEN and ELSE, no validation is performed)" ,
31+ "schema" : {
32+ "if" : {
33+ "properties" : {
34+ "foo" : { "maximum" : 3.0 }
35+ }
36+ }
37+ },
38+ "tests" : [
39+ {
40+ "description" : " if valid" ,
41+ "data" : { "foo" : 2.9 },
42+ "valid" : true
43+ },
44+ {
45+ "description" : " if invalid" ,
46+ "data" : { "foo" : 3.1 },
47+ "valid" : true
48+ }
49+ ]
50+ },
51+ {
52+ "description" : " Simple if-else (incomplete structure, without THEN, no validation is performed)" ,
53+ "schema" : {
54+ "if" : {
55+ "properties" : {
56+ "foo" : { "minimum" : 3.0 }
57+ }
58+ },
59+ "else" : {
60+ "required" : [ " bar" ]
61+ }
62+ },
63+ "tests" : [
64+ {
65+ "description" : " if valid, no validation (THEN is not executed because it doesn't exist)" ,
66+ "data" : { "foo" : 3.1 },
67+ "valid" : true
68+ },
69+ {
70+ "description" : " if invalid, no validation (ELSE is not executed because THEN doesn't exist)" ,
71+ "data" : { "foo" : 2.9 },
72+ "valid" : true
73+ }
74+ ]
75+ },
76+ {
77+ "description" : " Simple if-then (complete structure, without ELSE)" ,
78+ "schema" : {
79+ "if" : {
80+ "properties" : {
81+ "foo" : { "pattern" : " ^[AB]$" }
82+ }
83+ },
84+ "then" : {
85+ "required" : [ " bar" ]
86+ }
87+ },
88+ "tests" : [
89+ {
90+ "description" : " Simple if-then valid" ,
91+ "data" : { "foo" : " A" , "bar" : 1 },
92+ "valid" : true
93+ },
94+ {
95+ "description" : " Simple if-then invalid" ,
96+ "data" : { "foo" : " A" },
97+ "valid" : false
98+ }
99+ ]
100+ },
101+ {
102+ "description" : " Simple if-then-else (complete structure)" ,
103+ "schema" : {
104+ "if" : {
105+ "properties" : {
106+ "foo" : { "pattern" : " ^[AB]$" }
107+ }
108+ },
109+ "then" : {
110+ "required" : [ " bar" ]
111+ },
112+ "else" : {
113+ "required" : [ " baz" ]
114+ }
115+ },
116+ "tests" : [
117+ {
118+ "description" : " Simple if-then-else, then valid" ,
119+ "data" : { "foo" : " A" , "bar" : 1 },
120+ "valid" : true
121+ },
122+ {
123+ "description" : " Simple if-then-else, then invalid" ,
124+ "data" : { "foo" : " A" },
125+ "valid" : false
126+ },
127+ {
128+ "description" : " Simple if-then-else, else valid" ,
129+ "data" : { "foo" : " C" , "baz" : 1 },
130+ "valid" : true
131+ },
132+ {
133+ "description" : " Simple if-then-else, else invalid" ,
134+ "data" : { "foo" : " C" },
135+ "valid" : false
136+ }
137+ ]
138+ },
139+ {
140+ "description" : " Nested if-then-else (complete structure)" ,
141+ "schema" : {
142+ "if" : {
143+ "properties" : {
144+ "foo" : { "pattern" : " ^[AB]$" }
145+ }
146+ },
147+ "then" : {
148+ "if" : {
149+ "properties" : {
150+ "bar" : { "pattern" : " ^[CD]$" }
151+ }
152+ },
153+ "then" : {
154+ "required" : [ " baz" ]
155+ },
156+ "else" : {
157+ "required" : [ " qux" ]
158+ }
159+ },
160+ "else" : {
161+ "if" : {
162+ "properties" : {
163+ "bar" : { "pattern" : " ^[XY]$" }
164+ }
165+ },
166+ "then" : {
167+ "required" : [ " baz" ]
168+ },
169+ "else" : {
170+ "required" : [ " qux" ]
171+ }
172+ }
173+ },
174+ "tests" : [
175+ {
176+ "description" : " if-then-if-then valid" ,
177+ "data" : { "foo" : " A" , "bar" : " C" , "baz" : 1 },
178+ "valid" : true
179+ },
180+ {
181+ "description" : " if-then-if-then invalid" ,
182+ "data" : { "foo" : " A" , "bar" : " C" },
183+ "valid" : false
184+ },
185+ {
186+ "description" : " if-then-if-else valid" ,
187+ "data" : { "foo" : " A" , "bar" : " E" , "qux" : 1 },
188+ "valid" : true
189+ },
190+ {
191+ "description" : " if-then-if-else invalid" ,
192+ "data" : { "foo" : " A" , "bar" : " E" },
193+ "valid" : false
194+ },
195+ {
196+ "description" : " if-else-if-then valid" ,
197+ "data" : { "foo" : " C" , "bar" : " X" , "baz" : 1 },
198+ "valid" : true
199+ },
200+ {
201+ "description" : " if-else-if-then invalid" ,
202+ "data" : { "foo" : " C" , "bar" : " X" },
203+ "valid" : false
204+ },
205+ {
206+ "description" : " if-else-if-else valid" ,
207+ "data" : { "foo" : " C" , "bar" : " Z" , "qux" : 1 },
208+ "valid" : true
209+ },
210+ {
211+ "description" : " if-else-if-else invalid" ,
212+ "data" : { "foo" : " C" , "bar" : " Z" },
213+ "valid" : false
214+ }
215+ ]
216+ }
217+ ]
0 commit comments