@@ -113,6 +113,12 @@ public function setup()
113113 $ annotations ['arr ' ]->name = 'arr ' ;
114114 $ annotations ['arr ' ]->array = true ;
115115
116+ $ annotations ['arr_null_strict ' ] = new RequestParam ();
117+ $ annotations ['arr_null_strict ' ]->name = 'arr_null_strict ' ;
118+ $ annotations ['arr_null_strict ' ]->array = true ;
119+ $ annotations ['arr_null_strict ' ]->nullable = true ;
120+ $ annotations ['arr_null_strict ' ]->strict = true ;
121+
116122 $ annotations ['moo ' ] = new QueryParam ();
117123 $ annotations ['moo ' ]->name = 'mooh ' ;
118124 $ annotations ['moo ' ]->key = 'moo ' ;
@@ -187,21 +193,21 @@ public static function validatesConfiguredParamDataProvider()
187193 array ( // check that non-strict missing params take default value
188194 'foo ' ,
189195 '1 ' ,
190- array ('foo ' => '1 ' , 'bar ' => '2 ' , 'baz ' => '4 ' , 'buzz ' => array (1 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), 'moo ' => null ),
196+ array ('foo ' => '1 ' , 'bar ' => '2 ' , 'baz ' => '4 ' , 'buzz ' => array (1 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), 'arr_null_strict ' => array (), ' moo ' => null ),
191197 array (),
192198 array ('bar ' => '2 ' , 'baz ' => '4 ' , 'arr ' => array ()),
193199 ),
194200 array ( // pass Param in GET
195201 'foo ' ,
196202 '42 ' ,
197- array ('foo ' => '42 ' , 'bar ' => '2 ' , 'baz ' => '4 ' , 'buzz ' => array (1 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), 'moo ' => null ),
203+ array ('foo ' => '42 ' , 'bar ' => '2 ' , 'baz ' => '4 ' , 'buzz ' => array (1 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), 'arr_null_strict ' => array (), ' moo ' => null ),
198204 array ('foo ' => '42 ' ),
199205 array ('bar ' => '2 ' , 'baz ' => '4 ' , 'arr ' => array ()),
200206 ),
201207 array ( // check that invalid non-strict params take default value
202208 'foo ' ,
203209 '1 ' ,
204- array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (1 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), 'moo ' => null ),
210+ array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (1 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), 'arr_null_strict ' => array (), ' moo ' => null ),
205211 array ('foo ' => 'bar ' ),
206212 array ('bar ' => '1 ' , 'baz ' => '4 ' , 'arr ' => array ()),
207213 function (\PHPUnit_Framework_MockObject_MockObject $ validator , \PHPUnit_Framework_TestCase $ self ) {
@@ -220,32 +226,39 @@ function (\PHPUnit_Framework_MockObject_MockObject $validator, \PHPUnit_Framewor
220226
221227 },
222228 ),
229+ array ( // nullable array with strict
230+ 'arr_null_strict ' ,
231+ array (),
232+ array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (1 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), 'arr_null_strict ' => array (), 'moo ' => null ),
233+ array (),
234+ array ('bar ' => '1 ' , 'baz ' => '4 ' , 'arr ' => array ()),
235+ ),
223236 array ( // invalid array
224237 'buzz ' ,
225238 array (1 ),
226- array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (1 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), 'moo ' => null ),
239+ array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (1 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), 'arr_null_strict ' => array (), ' moo ' => null ),
227240 array ('buzz ' => 'invaliddata ' ),
228241 array ('bar ' => '1 ' , 'baz ' => '4 ' , 'arr ' => array ()),
229242 ),
230243 array ( // invalid array (multiple depth)
231244 'buzz ' ,
232245 array (1 ),
233- array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (1 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), 'moo ' => null ),
246+ array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (1 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), 'arr_null_strict ' => array (), ' moo ' => null ),
234247 array ('buzz ' => array (array (1 ))),
235248 array ('bar ' => '1 ' , 'baz ' => '4 ' , 'arr ' => array ()),
236249 ),
237250
238251 array ( // multiple array
239252 'buzz ' ,
240253 array (2 , 3 , 4 ),
241- array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 3 , 4 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), 'moo ' => null ),
254+ array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 3 , 4 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), 'arr_null_strict ' => array (), ' moo ' => null ),
242255 array ('buzz ' => array (2 , 3 , 4 )),
243256 array ('bar ' => '1 ' , 'baz ' => '4 ' , 'arr ' => array ()),
244257 ),
245258 array ( // multiple array with one invalid value
246259 'buzz ' ,
247260 array (2 , 1 , 4 ),
248- array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 1 , 4 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), 'moo ' => null ),
261+ array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 1 , 4 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), 'arr_null_strict ' => array (), ' moo ' => null ),
249262 array ('buzz ' => array (2 , 'invaliddata ' , 4 )),
250263 array ('bar ' => '1 ' , 'baz ' => '4 ' , 'arr ' => array ()),
251264 function (\PHPUnit_Framework_MockObject_MockObject $ validator , \PHPUnit_Framework_TestCase $ self ) {
@@ -267,42 +280,42 @@ function (\PHPUnit_Framework_MockObject_MockObject $validator, \PHPUnit_Framewor
267280 array ( // Array not provided in GET query
268281 'boo ' ,
269282 array (),
270- array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 3 , 4 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), 'moo ' => null ),
283+ array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 3 , 4 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), 'arr_null_strict ' => array (), ' moo ' => null ),
271284 array ('buzz ' => array (2 , 3 , 4 )),
272285 array ('bar ' => '1 ' , 'baz ' => '4 ' , 'arr ' => array ()),
273286 ),
274287 array ( // QueryParam provided in GET query but as a scalar
275288 'boo ' ,
276289 array (),
277- array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 3 , 4 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), 'moo ' => null ),
290+ array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 3 , 4 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), 'arr_null_strict ' => array (), ' moo ' => null ),
278291 array ('buzz ' => array (2 , 3 , 4 ), 'boo ' => 'scalar ' ),
279292 array ('bar ' => '1 ' , 'baz ' => '4 ' , 'arr ' => array ()),
280293 ),
281294 array ( // QueryParam provided in GET query with valid values
282295 'boo ' ,
283296 array ('1 ' , 'foo ' , 5 ),
284- array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 3 , 4 ), 'boo ' => array ('1 ' , 'foo ' , 5 ), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), 'moo ' => null ),
297+ array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 3 , 4 ), 'boo ' => array ('1 ' , 'foo ' , 5 ), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), 'arr_null_strict ' => array (), ' moo ' => null ),
285298 array ('buzz ' => array (2 , 3 , 4 ), 'boo ' => array ('1 ' , 'foo ' , 5 )),
286299 array ('bar ' => '1 ' , 'baz ' => '4 ' , 'arr ' => array ()),
287300 ),
288301 array ( // QueryParam provided in GET query with valid values
289302 'boozz ' ,
290303 null ,
291- array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 3 , 4 ), 'boo ' => array ('1 ' , 'foo ' , 5 ), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), 'moo ' => null ),
304+ array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 3 , 4 ), 'boo ' => array ('1 ' , 'foo ' , 5 ), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), 'arr_null_strict ' => array (), ' moo ' => null ),
292305 array ('buzz ' => array (2 , 3 , 4 ), 'boo ' => array ('1 ' , 'foo ' , 5 )),
293306 array ('bar ' => '1 ' , 'baz ' => '4 ' , 'arr ' => array ()),
294307 ),
295308 array ( // QueryParam provided in GET query with valid values
296309 'boozz ' ,
297310 5 ,
298- array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 3 , 4 ), 'boo ' => array ('1 ' , 'foo ' , 5 ), 'boozz ' => 5 , 'biz ' => null , 'arr ' => array (), 'moo ' => null ),
311+ array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 3 , 4 ), 'boo ' => array ('1 ' , 'foo ' , 5 ), 'boozz ' => 5 , 'biz ' => null , 'arr ' => array (), 'arr_null_strict ' => array (), ' moo ' => null ),
299312 array ('buzz ' => array (2 , 3 , 4 ), 'boo ' => array ('1 ' , 'foo ' , 5 ), 'boozz ' => 5 ),
300313 array ('bar ' => '1 ' , 'baz ' => '4 ' , 'boozz ' => 5 , 'arr ' => array ()),
301314 ),
302315 array ( // QueryParam provided in GET query with valid values
303316 'moo ' ,
304317 'string ' ,
305- array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 3 , 4 ), 'boo ' => array ('1 ' , 'foo ' , 5 ), 'boozz ' => 5 , 'biz ' => null , 'arr ' => array (), 'moo ' => 'string ' ),
318+ array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 3 , 4 ), 'boo ' => array ('1 ' , 'foo ' , 5 ), 'boozz ' => 5 , 'biz ' => null , 'arr ' => array (), 'arr_null_strict ' => array (), ' moo ' => 'string ' ),
306319 array ('buzz ' => array (2 , 3 , 4 ), 'boo ' => array ('1 ' , 'foo ' , 5 ), 'boozz ' => 5 , 'moo ' => 'string ' ),
307320 array ('bar ' => '1 ' , 'baz ' => '4 ' , 'boozz ' => 5 , 'arr ' => array ()),
308321 )
@@ -321,7 +334,7 @@ public function testValidatesAddParam()
321334 $ queryFetcher ->addParam ($ runtimeParam );
322335
323336 $ this ->assertEquals (10 , $ queryFetcher ->get ('bub ' ));
324- $ this ->assertEquals (array ('foo ' => '1 ' , 'bar ' => '2 ' , 'baz ' => '4 ' , 'buzz ' => array (1 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'bub ' => 10 , 'arr ' => array (), 'moo ' => '' ), $ queryFetcher ->all ());
337+ $ this ->assertEquals (array ('foo ' => '1 ' , 'bar ' => '2 ' , 'baz ' => '4 ' , 'buzz ' => array (1 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'bub ' => 10 , 'arr ' => array (), 'arr_null_strict ' => array (), ' moo ' => '' ), $ queryFetcher ->all ());
325338 }
326339
327340 public function testValidatesConfiguredParamStrictly ()
0 commit comments