Skip to content

Commit da8b14e

Browse files
author
Evgeny Poberezkin
authored
Merge pull request #170 from epoberezkin/boolean
Boolean
2 parents 20d706c + e86adb2 commit da8b14e

12 files changed

+480
-1
lines changed

tests/draft6/allOf.json

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,5 +108,38 @@
108108
"valid": false
109109
}
110110
]
111+
},
112+
{
113+
"description": "allOf with boolean schemas, all true",
114+
"schema": {"allOf": [true, true]},
115+
"tests": [
116+
{
117+
"description": "any value is valid",
118+
"data": "foo",
119+
"valid": true
120+
}
121+
]
122+
},
123+
{
124+
"description": "allOf with boolean schemas, some false",
125+
"schema": {"allOf": [true, false]},
126+
"tests": [
127+
{
128+
"description": "any value is invalid",
129+
"data": "foo",
130+
"valid": false
131+
}
132+
]
133+
},
134+
{
135+
"description": "allOf with boolean schemas, all false",
136+
"schema": {"allOf": [false, false]},
137+
"tests": [
138+
{
139+
"description": "any value is invalid",
140+
"data": "foo",
141+
"valid": false
142+
}
143+
]
111144
}
112145
]

tests/draft6/anyOf.json

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,5 +64,38 @@
6464
"valid": false
6565
}
6666
]
67+
},
68+
{
69+
"description": "anyOf with boolean schemas, all true",
70+
"schema": {"anyOf": [true, true]},
71+
"tests": [
72+
{
73+
"description": "any value is valid",
74+
"data": "foo",
75+
"valid": true
76+
}
77+
]
78+
},
79+
{
80+
"description": "anyOf with boolean schemas, some true",
81+
"schema": {"anyOf": [true, false]},
82+
"tests": [
83+
{
84+
"description": "any value is valid",
85+
"data": "foo",
86+
"valid": true
87+
}
88+
]
89+
},
90+
{
91+
"description": "anyOf with boolean schemas, all false",
92+
"schema": {"anyOf": [false, false]},
93+
"tests": [
94+
{
95+
"description": "any value is invalid",
96+
"data": "foo",
97+
"valid": false
98+
}
99+
]
67100
}
68101
]

tests/draft6/boolean_schema.json

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
[
2+
{
3+
"description": "boolean schema 'true'",
4+
"schema": true,
5+
"tests": [
6+
{
7+
"description": "number is valid",
8+
"data": 1,
9+
"valid": true
10+
},
11+
{
12+
"description": "string is valid",
13+
"data": "foo",
14+
"valid": true
15+
},
16+
{
17+
"description": "boolean true is valid",
18+
"data": true,
19+
"valid": true
20+
},
21+
{
22+
"description": "boolean false is valid",
23+
"data": false,
24+
"valid": true
25+
},
26+
{
27+
"description": "null is valid",
28+
"data": null,
29+
"valid": true
30+
},
31+
{
32+
"description": "object is valid",
33+
"data": {"foo": "bar"},
34+
"valid": true
35+
},
36+
{
37+
"description": "empty object is valid",
38+
"data": {},
39+
"valid": true
40+
},
41+
{
42+
"description": "array is valid",
43+
"data": ["foo"],
44+
"valid": true
45+
},
46+
{
47+
"description": "empty array is valid",
48+
"data": [],
49+
"valid": true
50+
}
51+
]
52+
},
53+
{
54+
"description": "boolean schema 'false'",
55+
"schema": false,
56+
"tests": [
57+
{
58+
"description": "number is invalid",
59+
"data": 1,
60+
"valid": false
61+
},
62+
{
63+
"description": "string is invalid",
64+
"data": "foo",
65+
"valid": false
66+
},
67+
{
68+
"description": "boolean true is invalid",
69+
"data": true,
70+
"valid": false
71+
},
72+
{
73+
"description": "boolean false is invalid",
74+
"data": false,
75+
"valid": false
76+
},
77+
{
78+
"description": "null is invalid",
79+
"data": null,
80+
"valid": false
81+
},
82+
{
83+
"description": "object is invalid",
84+
"data": {"foo": "bar"},
85+
"valid": false
86+
},
87+
{
88+
"description": "empty object is invalid",
89+
"data": {},
90+
"valid": false
91+
},
92+
{
93+
"description": "array is invalid",
94+
"data": ["foo"],
95+
"valid": false
96+
},
97+
{
98+
"description": "empty array is invalid",
99+
"data": [],
100+
"valid": false
101+
}
102+
]
103+
}
104+
]

tests/draft6/contains.json

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,5 +59,37 @@
5959
"valid": false
6060
}
6161
]
62+
},
63+
{
64+
"description": "contains keyword with boolean schema true",
65+
"schema": {"contains": true},
66+
"tests": [
67+
{
68+
"description": "any non-empty array is valid",
69+
"data": ["foo"],
70+
"valid": true
71+
},
72+
{
73+
"description": "empty array is invalid",
74+
"data": [],
75+
"valid": false
76+
}
77+
]
78+
},
79+
{
80+
"description": "contains keyword with boolean schema false",
81+
"schema": {"contains": false},
82+
"tests": [
83+
{
84+
"description": "any non-empty array is invalid",
85+
"data": ["foo"],
86+
"valid": false
87+
},
88+
{
89+
"description": "empty array is invalid",
90+
"data": [],
91+
"valid": false
92+
}
93+
]
6294
}
6395
]

tests/draft6/dependencies.json

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,5 +127,36 @@
127127
"valid": false
128128
}
129129
]
130+
},
131+
{
132+
"description": "dependencies with boolean subschemas",
133+
"schema": {
134+
"dependencies": {
135+
"foo": true,
136+
"bar": false
137+
}
138+
},
139+
"tests": [
140+
{
141+
"description": "object with property having schema true is valid",
142+
"data": {"foo": 1},
143+
"valid": true
144+
},
145+
{
146+
"description": "object with property having schema false is invalid",
147+
"data": {"bar": 2},
148+
"valid": false
149+
},
150+
{
151+
"description": "object with both properties is invalid",
152+
"data": {"foo": 1, "bar": 2},
153+
"valid": false
154+
},
155+
{
156+
"description": "empty object is valid",
157+
"data": {},
158+
"valid": true
159+
}
160+
]
130161
}
131162
]

tests/draft6/items.json

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,5 +74,60 @@
7474
"valid": true
7575
}
7676
]
77+
},
78+
{
79+
"description": "items with boolean schema (true)",
80+
"schema": {"items": true},
81+
"tests": [
82+
{
83+
"description": "any array is valid",
84+
"data": [ 1, "foo", true ],
85+
"valid": true
86+
},
87+
{
88+
"description": "empty array is valid",
89+
"data": [],
90+
"valid": true
91+
}
92+
]
93+
},
94+
{
95+
"description": "items with boolean schema (false)",
96+
"schema": {"items": false},
97+
"tests": [
98+
{
99+
"description": "any non-empty array is invalid",
100+
"data": [ 1, "foo", true ],
101+
"valid": false
102+
},
103+
{
104+
"description": "empty array is valid",
105+
"data": [],
106+
"valid": true
107+
}
108+
]
109+
},
110+
{
111+
"description": "items with boolean schemas",
112+
"schema": {
113+
"items": [true, false]
114+
},
115+
"tests": [
116+
{
117+
"description": "array with one item is valid",
118+
"data": [ 1 ],
119+
"valid": true
120+
},
121+
{
122+
"description": "array with two items is invalid",
123+
"data": [ 1, "foo" ],
124+
"valid": false
125+
},
126+
{
127+
"description": "empty array is valid",
128+
"data": [],
129+
"valid": true
130+
}
131+
]
77132
}
78133
]

tests/draft6/not.json

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,27 @@
9191
"valid": true
9292
}
9393
]
94+
},
95+
{
96+
"description": "not with boolean schema true",
97+
"schema": {"not": true},
98+
"tests": [
99+
{
100+
"description": "any value is invalid",
101+
"data": "foo",
102+
"valid": false
103+
}
104+
]
105+
},
106+
{
107+
"description": "not with boolean schema false",
108+
"schema": {"not": false},
109+
"tests": [
110+
{
111+
"description": "any value is valid",
112+
"data": "foo",
113+
"valid": true
114+
}
115+
]
94116
}
95-
96117
]

tests/draft6/oneOf.json

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,5 +64,49 @@
6464
"valid": false
6565
}
6666
]
67+
},
68+
{
69+
"description": "oneOf with boolean schemas, all true",
70+
"schema": {"oneOf": [true, true, true]},
71+
"tests": [
72+
{
73+
"description": "any value is invalid",
74+
"data": "foo",
75+
"valid": false
76+
}
77+
]
78+
},
79+
{
80+
"description": "oneOf with boolean schemas, one true",
81+
"schema": {"oneOf": [true, false, false]},
82+
"tests": [
83+
{
84+
"description": "any value is valid",
85+
"data": "foo",
86+
"valid": true
87+
}
88+
]
89+
},
90+
{
91+
"description": "oneOf with boolean schemas, more than one true",
92+
"schema": {"oneOf": [true, true, false]},
93+
"tests": [
94+
{
95+
"description": "any value is invalid",
96+
"data": "foo",
97+
"valid": false
98+
}
99+
]
100+
},
101+
{
102+
"description": "oneOf with boolean schemas, all false",
103+
"schema": {"oneOf": [false, false, false]},
104+
"tests": [
105+
{
106+
"description": "any value is invalid",
107+
"data": "foo",
108+
"valid": false
109+
}
110+
]
67111
}
68112
]

0 commit comments

Comments
 (0)