@@ -113,6 +113,15 @@ public function setup()
113113 $ annotations ['arr ' ]->name = 'arr ' ;
114114 $ annotations ['arr ' ]->array = true ;
115115
116+ $ annotations ['moo ' ] = new QueryParam ();
117+ $ annotations ['moo ' ]->name = 'mooh ' ;
118+ $ annotations ['moo ' ]->key = 'moo ' ;
119+ $ annotations ['moo ' ]->requirements = '\d+ ' ;
120+ $ annotations ['moo ' ]->default = null ;
121+ $ annotations ['moo ' ]->nullable = true ;
122+ $ annotations ['moo ' ]->allowBlank = false ;
123+ $ annotations ['moo ' ]->description = 'A scalar param with an explicitly defined null default ' ;
124+
116125 $ this ->paramReader
117126 ->expects ($ this ->any ())
118127 ->method ('read ' )
@@ -178,21 +187,21 @@ public static function validatesConfiguredParamDataProvider()
178187 array ( // check that non-strict missing params take default value
179188 'foo ' ,
180189 '1 ' ,
181- array ('foo ' => '1 ' , 'bar ' => '2 ' , 'baz ' => '4 ' , 'buzz ' => array (1 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array ()),
190+ array ('foo ' => '1 ' , 'bar ' => '2 ' , 'baz ' => '4 ' , 'buzz ' => array (1 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), ' moo ' => null ),
182191 array (),
183192 array ('bar ' => '2 ' , 'baz ' => '4 ' , 'arr ' => array ()),
184193 ),
185194 array ( // pass Param in GET
186195 'foo ' ,
187196 '42 ' ,
188- array ('foo ' => '42 ' , 'bar ' => '2 ' , 'baz ' => '4 ' , 'buzz ' => array (1 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array ()),
197+ array ('foo ' => '42 ' , 'bar ' => '2 ' , 'baz ' => '4 ' , 'buzz ' => array (1 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), ' moo ' => null ),
189198 array ('foo ' => '42 ' ),
190199 array ('bar ' => '2 ' , 'baz ' => '4 ' , 'arr ' => array ()),
191200 ),
192201 array ( // check that invalid non-strict params take default value
193202 'foo ' ,
194203 '1 ' ,
195- array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (1 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array ()),
204+ array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (1 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), ' moo ' => null ),
196205 array ('foo ' => 'bar ' ),
197206 array ('bar ' => '1 ' , 'baz ' => '4 ' , 'arr ' => array ()),
198207 function (\PHPUnit_Framework_MockObject_MockObject $ validator , \PHPUnit_Framework_TestCase $ self ) {
@@ -214,29 +223,29 @@ function (\PHPUnit_Framework_MockObject_MockObject $validator, \PHPUnit_Framewor
214223 array ( // invalid array
215224 'buzz ' ,
216225 array (1 ),
217- array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (1 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array ()),
226+ array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (1 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), ' moo ' => null ),
218227 array ('buzz ' => 'invaliddata ' ),
219228 array ('bar ' => '1 ' , 'baz ' => '4 ' , 'arr ' => array ()),
220229 ),
221230 array ( // invalid array (multiple depth)
222231 'buzz ' ,
223232 array (1 ),
224- array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (1 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array ()),
233+ array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (1 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), ' moo ' => null ),
225234 array ('buzz ' => array (array (1 ))),
226235 array ('bar ' => '1 ' , 'baz ' => '4 ' , 'arr ' => array ()),
227236 ),
228237
229238 array ( // multiple array
230239 'buzz ' ,
231240 array (2 , 3 , 4 ),
232- array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 3 , 4 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array ()),
241+ array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 3 , 4 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), ' moo ' => null ),
233242 array ('buzz ' => array (2 , 3 , 4 )),
234243 array ('bar ' => '1 ' , 'baz ' => '4 ' , 'arr ' => array ()),
235244 ),
236245 array ( // multiple array with one invalid value
237246 'buzz ' ,
238247 array (2 , 1 , 4 ),
239- array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 1 , 4 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array ()),
248+ array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 1 , 4 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), ' moo ' => null ),
240249 array ('buzz ' => array (2 , 'invaliddata ' , 4 )),
241250 array ('bar ' => '1 ' , 'baz ' => '4 ' , 'arr ' => array ()),
242251 function (\PHPUnit_Framework_MockObject_MockObject $ validator , \PHPUnit_Framework_TestCase $ self ) {
@@ -258,38 +267,45 @@ function (\PHPUnit_Framework_MockObject_MockObject $validator, \PHPUnit_Framewor
258267 array ( // Array not provided in GET query
259268 'boo ' ,
260269 array (),
261- array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 3 , 4 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array ()),
270+ array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 3 , 4 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), ' moo ' => null ),
262271 array ('buzz ' => array (2 , 3 , 4 )),
263272 array ('bar ' => '1 ' , 'baz ' => '4 ' , 'arr ' => array ()),
264273 ),
265274 array ( // QueryParam provided in GET query but as a scalar
266275 'boo ' ,
267276 array (),
268- array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 3 , 4 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array ()),
277+ array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 3 , 4 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'arr ' => array (), ' moo ' => null ),
269278 array ('buzz ' => array (2 , 3 , 4 ), 'boo ' => 'scalar ' ),
270279 array ('bar ' => '1 ' , 'baz ' => '4 ' , 'arr ' => array ()),
271280 ),
272281 array ( // QueryParam provided in GET query with valid values
273282 'boo ' ,
274283 array ('1 ' , 'foo ' , 5 ),
275- array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 3 , 4 ), 'boo ' => array ('1 ' , 'foo ' , 5 ), 'boozz ' => null , 'biz ' => null , 'arr ' => array ()),
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 ),
276285 array ('buzz ' => array (2 , 3 , 4 ), 'boo ' => array ('1 ' , 'foo ' , 5 )),
277286 array ('bar ' => '1 ' , 'baz ' => '4 ' , 'arr ' => array ()),
278287 ),
279288 array ( // QueryParam provided in GET query with valid values
280289 'boozz ' ,
281290 null ,
282- array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 3 , 4 ), 'boo ' => array ('1 ' , 'foo ' , 5 ), 'boozz ' => null , 'biz ' => null , 'arr ' => array ()),
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 ),
283292 array ('buzz ' => array (2 , 3 , 4 ), 'boo ' => array ('1 ' , 'foo ' , 5 )),
284293 array ('bar ' => '1 ' , 'baz ' => '4 ' , 'arr ' => array ()),
285294 ),
286295 array ( // QueryParam provided in GET query with valid values
287296 'boozz ' ,
288297 5 ,
289- array ('foo ' => '1 ' , 'bar ' => '1 ' , 'baz ' => '4 ' , 'buzz ' => array (2 , 3 , 4 ), 'boo ' => array ('1 ' , 'foo ' , 5 ), 'boozz ' => 5 , 'biz ' => null , 'arr ' => array ()),
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 ),
290299 array ('buzz ' => array (2 , 3 , 4 ), 'boo ' => array ('1 ' , 'foo ' , 5 ), 'boozz ' => 5 ),
291300 array ('bar ' => '1 ' , 'baz ' => '4 ' , 'boozz ' => 5 , 'arr ' => array ()),
292301 ),
302+ array ( // QueryParam provided in GET query with valid values
303+ 'moo ' ,
304+ '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 ' ),
306+ array ('buzz ' => array (2 , 3 , 4 ), 'boo ' => array ('1 ' , 'foo ' , 5 ), 'boozz ' => 5 , 'moo ' => 'string ' ),
307+ array ('bar ' => '1 ' , 'baz ' => '4 ' , 'boozz ' => 5 , 'arr ' => array ()),
308+ )
293309 );
294310 }
295311
@@ -305,7 +321,7 @@ public function testValidatesAddParam()
305321 $ queryFetcher ->addParam ($ runtimeParam );
306322
307323 $ this ->assertEquals (10 , $ queryFetcher ->get ('bub ' ));
308- $ this ->assertEquals (array ('foo ' => '1 ' , 'bar ' => '2 ' , 'baz ' => '4 ' , 'buzz ' => array (1 ), 'boo ' => array (), 'boozz ' => null , 'biz ' => null , 'bub ' => 10 , 'arr ' => array ()), $ queryFetcher ->all ());
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 ());
309325 }
310326
311327 public function testValidatesConfiguredParamStrictly ()
0 commit comments