@@ -48,12 +48,35 @@ public function testValidCoerceCases($input, $schema, $errors = array())
48
48
$ validator = new Validator (new Factory ($ schemaStorage , null , $ checkMode ));
49
49
$ value = json_decode ($ input );
50
50
51
+ $ this ->assertTrue (gettype ($ value ->string ) == 'string ' );
52
+ $ this ->assertTrue (gettype ($ value ->numberString ) == 'integer ' );
53
+ $ this ->assertTrue (gettype ($ value ->boolString ) == 'boolean ' );
54
+ $ this ->assertTrue (gettype ($ value ->boolFalseString ) == 'boolean ' );
55
+ $ this ->assertTrue (gettype ($ value ->nullString ) == 'NULL ' );
56
+ $ this ->assertTrue (gettype ($ value ->arrayString ) == 'array ' );
51
57
$ this ->assertTrue (gettype ($ value ->number ) == 'string ' );
58
+ $ this ->assertTrue (gettype ($ value ->boolNumber ) == 'boolean ' );
59
+ $ this ->assertTrue (gettype ($ value ->nullNumber ) == 'NULL ' );
60
+ $ this ->assertTrue (gettype ($ value ->arrayNumber ) == 'array ' );
52
61
$ this ->assertTrue (gettype ($ value ->integer ) == 'string ' );
62
+ $ this ->assertTrue (gettype ($ value ->negativeInteger ) == 'string ' );
53
63
$ this ->assertTrue (gettype ($ value ->boolean ) == 'string ' );
64
+ $ this ->assertTrue (gettype ($ value ->numberBoolean ) == 'integer ' );
65
+ $ this ->assertTrue (gettype ($ value ->nullBoolean ) == 'NULL ' );
66
+ $ this ->assertTrue (gettype ($ value ->arrayBoolean ) == 'array ' );
67
+ $ this ->assertTrue (gettype ($ value ->array ) == 'string ' );
68
+ $ this ->assertTrue (gettype ($ value ->numberArray ) == 'integer ' );
69
+ $ this ->assertTrue (gettype ($ value ->boolArray ) == 'boolean ' );
70
+ $ this ->assertTrue (gettype ($ value ->nullArray ) == 'NULL ' );
54
71
55
72
$ validator ->validate ($ value , $ schema , $ checkMode );
56
73
74
+ $ this ->assertTrue (gettype ($ value ->string ) == 'string ' );
75
+ $ this ->assertTrue (gettype ($ value ->numberString ) == 'string ' );
76
+ $ this ->assertTrue (gettype ($ value ->boolString ) == 'string ' );
77
+ $ this ->assertTrue (gettype ($ value ->boolFalseString ) == 'string ' );
78
+ $ this ->assertTrue (gettype ($ value ->nullString ) == 'string ' );
79
+ $ this ->assertTrue (gettype ($ value ->arrayString ) == 'string ' );
57
80
$ this ->assertTrue (gettype ($ value ->number ) == 'double ' );
58
81
$ this ->assertTrue (gettype ($ value ->boolNumber ) == 'integer ' );
59
82
$ this ->assertTrue (gettype ($ value ->nullNumber ) == 'integer ' );
@@ -64,12 +87,22 @@ public function testValidCoerceCases($input, $schema, $errors = array())
64
87
$ this ->assertTrue (gettype ($ value ->numberBoolean ) == 'boolean ' );
65
88
$ this ->assertTrue (gettype ($ value ->nullBoolean ) == 'boolean ' );
66
89
$ this ->assertTrue (gettype ($ value ->arrayBoolean ) == 'boolean ' );
90
+ $ this ->assertTrue (gettype ($ value ->array ) == 'array ' );
91
+ $ this ->assertTrue (gettype ($ value ->numberArray ) == 'array ' );
92
+ $ this ->assertTrue (gettype ($ value ->boolArray ) == 'array ' );
93
+ $ this ->assertTrue (gettype ($ value ->nullArray ) == 'array ' );
67
94
68
95
$ this ->assertTrue (gettype ($ value ->multitype1 ) == 'boolean ' );
69
96
$ this ->assertTrue (gettype ($ value ->multitype2 ) == 'double ' );
70
97
$ this ->assertTrue (gettype ($ value ->multitype3 ) == 'integer ' );
71
98
$ this ->assertTrue (gettype ($ value ->multitype4 ) == 'string ' );
72
99
100
+ $ this ->assertTrue ($ value ->string === 'string test ' );
101
+ $ this ->assertTrue ($ value ->numberString === '45 ' );
102
+ $ this ->assertTrue ($ value ->boolString === 'true ' );
103
+ $ this ->assertTrue ($ value ->boolFalseString === 'false ' );
104
+ $ this ->assertTrue ($ value ->nullString === '' );
105
+ $ this ->assertTrue ($ value ->arrayString === '45 ' );
73
106
$ this ->assertTrue ($ value ->number === 1.5 );
74
107
$ this ->assertTrue ($ value ->boolNumber === 1 );
75
108
$ this ->assertTrue ($ value ->nullNumber === 0 );
@@ -80,6 +113,10 @@ public function testValidCoerceCases($input, $schema, $errors = array())
80
113
$ this ->assertTrue ($ value ->numberBoolean === true );
81
114
$ this ->assertTrue ($ value ->nullBoolean === false );
82
115
$ this ->assertTrue ($ value ->arrayBoolean === true );
116
+ $ this ->assertTrue ($ value ->array === array ('string ' ));
117
+ $ this ->assertTrue ($ value ->numberArray === array (45 ));
118
+ $ this ->assertTrue ($ value ->boolArray === array (true ));
119
+ $ this ->assertTrue ($ value ->nullArray === array (null ));
83
120
84
121
$ this ->assertTrue ($ validator ->isValid (), print_r ($ validator ->getErrors (), true ));
85
122
}
@@ -130,6 +167,11 @@ public function getValidCoerceTests()
130
167
array (
131
168
'{
132
169
"string":"string test",
170
+ "numberString":45,
171
+ "boolString":true,
172
+ "boolFalseString":false,
173
+ "nullString":null,
174
+ "arrayString":[45],
133
175
"number":"1.5",
134
176
"boolNumber":true,
135
177
"nullNumber":null,
@@ -141,9 +183,10 @@ public function getValidCoerceTests()
141
183
"nullBoolean":null,
142
184
"arrayBoolean":["true"],
143
185
"object":{},
144
- "array":[],
186
+ "array":"string",
187
+ "numberArray":45,
188
+ "boolArray":true,
145
189
"nullArray":null,
146
- "stringArray":"string",
147
190
"null":null,
148
191
"any": "string",
149
192
"allOf": "1",
@@ -164,6 +207,11 @@ public function getValidCoerceTests()
164
207
"type":"object",
165
208
"properties":{
166
209
"string":{"type":"string"},
210
+ "numberString":{"type":"string"},
211
+ "boolString":{"type":"string"},
212
+ "boolFalseString":{"type":"string"},
213
+ "nullString":{"type":"string"},
214
+ "arrayString":{"type":"string"},
167
215
"number":{"type":"number"},
168
216
"boolNumber":{"type":"number"},
169
217
"nullNumber":{"type":"number"},
@@ -176,8 +224,9 @@ public function getValidCoerceTests()
176
224
"arrayBoolean":{"type":"boolean"},
177
225
"object":{"type":"object"},
178
226
"array":{"type":"array"},
227
+ "numberArray":{"type":"array"},
228
+ "boolArray":{"type":"array"},
179
229
"nullArray":{"type":"array"},
180
- "stringArray":{"type":"array"},
181
230
"null":{"type":"null"},
182
231
"any": {"type":"any"},
183
232
"allOf" : {"allOf":[{
@@ -220,7 +269,9 @@ public function getInvalidCoerceTests()
220
269
return array (
221
270
array ( // #0
222
271
'{
223
- "string":null
272
+ "string":{
273
+ "I am":"an object!"
274
+ }
224
275
} ' ,
225
276
'{
226
277
"type":"object",
0 commit comments