@@ -82,6 +82,35 @@ static function () {},
82
82
$ request ,
83
83
HttpKernelInterface::MAIN_REQUEST
84
84
);
85
+
86
+ $ this ->expectException (HttpException::class);
87
+
88
+ $ resolver ->onKernelControllerArguments ($ event );
89
+ }
90
+
91
+ /**
92
+ * @dataProvider provideContext
93
+ */
94
+ public function testEmptyArrayArgument (RequestPayloadValueResolver $ resolver , Request $ request )
95
+ {
96
+ $ attribute = new MapUploadedFile ();
97
+ $ argument = new ArgumentMetadata (
98
+ 'qux ' ,
99
+ 'array ' ,
100
+ false ,
101
+ false ,
102
+ null ,
103
+ false ,
104
+ [$ attribute ::class => $ attribute ]
105
+ );
106
+ $ event = new ControllerArgumentsEvent (
107
+ $ this ->createMock (HttpKernelInterface::class),
108
+ static function () {},
109
+ $ resolver ->resolve ($ request , $ argument ),
110
+ $ request ,
111
+ HttpKernelInterface::MAIN_REQUEST
112
+ );
113
+
85
114
$ resolver ->onKernelControllerArguments ($ event );
86
115
$ data = $ event ->getArguments ()[0 ];
87
116
@@ -337,6 +366,36 @@ static function () {},
337
366
$ this ->assertNull ($ data );
338
367
}
339
368
369
+ /**
370
+ * @dataProvider provideContext
371
+ */
372
+ public function testShouldAllowEmptyWhenNullableArray (RequestPayloadValueResolver $ resolver , Request $ request )
373
+ {
374
+ $ attribute = new MapUploadedFile ();
375
+ $ argument = new ArgumentMetadata (
376
+ 'qux ' ,
377
+ 'array ' ,
378
+ false ,
379
+ false ,
380
+ null ,
381
+ true ,
382
+ [$ attribute ::class => $ attribute ]
383
+ );
384
+ /** @var HttpKernelInterface&MockObject $httpKernel */
385
+ $ httpKernel = $ this ->createMock (HttpKernelInterface::class);
386
+ $ event = new ControllerArgumentsEvent (
387
+ $ httpKernel ,
388
+ static function () {},
389
+ $ resolver ->resolve ($ request , $ argument ),
390
+ $ request ,
391
+ HttpKernelInterface::MAIN_REQUEST
392
+ );
393
+ $ resolver ->onKernelControllerArguments ($ event );
394
+ $ data = $ event ->getArguments ()[0 ];
395
+
396
+ $ this ->assertNull ($ data );
397
+ }
398
+
340
399
/**
341
400
* @dataProvider provideContext
342
401
*/
0 commit comments