1717use ApiPlatform \Tests \RecreateSchemaTrait ;
1818use ApiPlatform \Tests \SetupClassResourcesTrait ;
1919use Doctrine \ORM \EntityManagerInterface ;
20- use PHPUnit \Framework \Attributes \DataProvider ;
2120use Symfony \Component \HttpFoundation \Response ;
2221
2322abstract class UuidFilterBaseTestCase extends ApiTestCase
@@ -316,15 +315,21 @@ public function testGetOpenApiDescription(): void
316315 );
317316 }
318317
319- #[DataProvider('provideSearchFilterByNestedProperty ' )]
320- public function testSearchFilterByUuidNested (callable $ fixtureFactoryCallable , callable $ queryCallable ): void
318+ public function testSearchFilterByUuidNested (): void
321319 {
322320 $ this ->recreateSchema (static ::getResources ());
323321
324- $ expectedDeviceEndpoint = $ fixtureFactoryCallable ($ this );
322+ $ manager = $ this ->getEntityManager ();
323+ $ manager ->persist ($ fooDevice = $ this ->createDevice ());
324+ $ manager ->persist ($ barDevice = $ this ->createDevice ());
325+ $ manager ->persist ($ this ->createDeviceEndpoint (null , $ fooDevice ));
326+ $ manager ->persist ($ expectedDeviceEndpoint = $ this ->createDeviceEndpoint (null , $ barDevice ));
327+ $ manager ->flush ();
325328
326329 $ response = self ::createClient ()->request ('GET ' , '/ ' .$ this ->getUrlPrefix ().'_device_endpoints ' , [
327- 'query ' => $ queryCallable ($ expectedDeviceEndpoint ),
330+ 'query ' => [
331+ 'myDeviceExternalIdAlias ' => (string ) $ expectedDeviceEndpoint ->myDevice ->externalId ,
332+ ],
328333 ]);
329334
330335 self ::assertResponseIsSuccessful ();
@@ -345,62 +350,6 @@ public function testSearchFilterByUuidNested(callable $fixtureFactoryCallable, c
345350 );
346351 }
347352
348- public static function provideSearchFilterByNestedProperty (): iterable
349- {
350- yield 'Filter uuid by nested property ' => [
351- $ fixtureFactoryWithMyDeviceCallable = function (UuidFilterBaseTestCase $ self ) {
352- $ manager = $ self ->getEntityManager ();
353- $ manager ->persist ($ fooDevice = $ self ->createDevice ());
354- $ manager ->persist ($ barDevice = $ self ->createDevice ());
355- $ manager ->persist ($ self ->createDeviceEndpoint (null , $ fooDevice ));
356- $ manager ->persist ($ expectedDeviceEndpoint = $ self ->createDeviceEndpoint (null , $ barDevice ));
357- $ manager ->flush ();
358-
359- return $ expectedDeviceEndpoint ;
360- },
361- fn ($ expectedDeviceEndpoint ) => [
362- 'myDevice.externalId ' => (string ) $ expectedDeviceEndpoint ->myDevice ->externalId ,
363- ],
364- ];
365-
366- yield 'Filter uuid by nested property with alias as query parameter ' => [
367- $ fixtureFactoryWithMyDeviceCallable ,
368- fn ($ expectedDeviceEndpoint ) => [
369- 'myDeviceExternalIdAlias ' => (string ) $ expectedDeviceEndpoint ->myDevice ->externalId ,
370- ],
371- ];
372-
373- yield 'Filter uuid by nested property when property name is converted with property name converted as query parameter ' => [
374- $ fixtureFactoryWithNameConvertedCallable = function (UuidFilterBaseTestCase $ self ) {
375- $ manager = $ self ->getEntityManager ();
376- $ manager ->persist ($ fooDevice = $ self ->createDevice ());
377- $ manager ->persist ($ barDevice = $ self ->createDevice ());
378- $ manager ->persist ($ self ->createDeviceEndpoint (null , null , $ fooDevice ));
379- $ manager ->persist ($ expectedDeviceEndpoint = $ self ->createDeviceEndpoint (null , null , $ barDevice ));
380- $ manager ->flush ();
381-
382- return $ expectedDeviceEndpoint ;
383- },
384- fn ($ expectedDeviceEndpoint ) => [
385- 'name_converted.name_converted ' => (string ) $ expectedDeviceEndpoint ->nameConverted ->nameConverted ,
386- ],
387- ];
388-
389- yield 'Filter uuid by nested property when name is converted with property name as query parameter ' => [
390- $ fixtureFactoryWithNameConvertedCallable ,
391- fn ($ expectedDeviceEndpoint ) => [
392- 'nameConverted.nameConverted ' => (string ) $ expectedDeviceEndpoint ->nameConverted ->nameConverted ,
393- ],
394- ];
395-
396- yield 'Filter uuid by nested property when name is converted with alias as query parameter ' => [
397- $ fixtureFactoryWithNameConvertedCallable ,
398- fn ($ expectedDeviceEndpoint ) => [
399- 'nameConvertedAlias ' => (string ) $ expectedDeviceEndpoint ->nameConverted ->nameConverted ,
400- ],
401- ];
402- }
403-
404353 public function getEntityManager (): EntityManagerInterface
405354 {
406355 return $ this ->getManager ();
0 commit comments