diff --git a/src/Bundle/Controller/Parameters.php b/src/Bundle/Controller/Parameters.php index 510b86232..a9b39700e 100644 --- a/src/Bundle/Controller/Parameters.php +++ b/src/Bundle/Controller/Parameters.php @@ -16,7 +16,7 @@ use Symfony\Component\HttpFoundation\ParameterBag; use Symfony\Component\HttpKernel\Kernel; -if (Kernel::MAJOR_VERSION === 6) { +if (Kernel::MAJOR_VERSION >= 6) { class Parameters extends ParameterBag { /** diff --git a/src/Bundle/spec/Controller/RedirectHandlerSpec.php b/src/Bundle/spec/Controller/RedirectHandlerSpec.php index 2d752ebf2..3630d2673 100644 --- a/src/Bundle/spec/Controller/RedirectHandlerSpec.php +++ b/src/Bundle/spec/Controller/RedirectHandlerSpec.php @@ -17,7 +17,7 @@ use Sylius\Bundle\ResourceBundle\Controller\RedirectHandlerInterface; use Sylius\Bundle\ResourceBundle\Controller\RequestConfiguration; use Sylius\Resource\Model\ResourceInterface; -use Symfony\Component\HttpFoundation\ParameterBag; +use Symfony\Component\HttpFoundation\HeaderBag; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -104,7 +104,7 @@ function it_redirects(RequestConfiguration $configuration): void $this->redirect($configuration, 'http://myurl.com')->shouldHaveType(RedirectResponse::class); } - function it_redirect_to_referer(RequestConfiguration $configuration, Request $request, ParameterBag $bag): void + function it_redirect_to_referer(RequestConfiguration $configuration, Request $request, HeaderBag $bag): void { $request->headers = $bag; diff --git a/src/Bundle/spec/Controller/RequestConfigurationFactorySpec.php b/src/Bundle/spec/Controller/RequestConfigurationFactorySpec.php index 739ea73dc..9909f4a60 100644 --- a/src/Bundle/spec/Controller/RequestConfigurationFactorySpec.php +++ b/src/Bundle/spec/Controller/RequestConfigurationFactorySpec.php @@ -138,7 +138,7 @@ function it_creates_configuration_using_only_those_serialization_groups_that_are ParametersParserInterface $parametersParser, MetadataInterface $metadata, Request $request, - ParameterBag $headersBag, + HeaderBag $headersBag, ParameterBag $attributesBag, ): void { $request->headers = $headersBag; @@ -167,7 +167,7 @@ function it_creates_configuration_using_only_those_serialization_groups_that_are ParametersParserInterface $parametersParser, MetadataInterface $metadata, Request $request, - ParameterBag $headersBag, + HeaderBag $headersBag, ParameterBag $attributesBag, ): void { $request->headers = $headersBag; @@ -197,7 +197,7 @@ function it_creates_configuration_using_only_those_serialization_groups_that_are ParametersParserInterface $parametersParser, MetadataInterface $metadata, Request $request, - ParameterBag $headersBag, + HeaderBag $headersBag, ParameterBag $attributesBag, ): void { $request->headers = $headersBag; diff --git a/src/Bundle/spec/Controller/RequestConfigurationSpec.php b/src/Bundle/spec/Controller/RequestConfigurationSpec.php index e29bc2b40..c9e45464b 100644 --- a/src/Bundle/spec/Controller/RequestConfigurationSpec.php +++ b/src/Bundle/spec/Controller/RequestConfigurationSpec.php @@ -17,6 +17,8 @@ use Prophecy\Argument; use Sylius\Bundle\ResourceBundle\Controller\Parameters; use Sylius\Resource\Metadata\MetadataInterface; +use Symfony\Component\HttpFoundation\HeaderBag; +use Symfony\Component\HttpFoundation\InputBag; use Symfony\Component\HttpFoundation\ParameterBag; use Symfony\Component\HttpFoundation\Request; @@ -132,7 +134,7 @@ function it_generates_route_names(MetadataInterface $metadata, Parameters $param $this->getRouteName('custom')->shouldReturn('sylius_admin_product_custom'); } - function it_generates_redirect_referer(Parameters $parameters, Request $request, ParameterBag $bag): void + function it_generates_redirect_referer(Parameters $parameters, Request $request, HeaderBag $bag): void { $request->headers = $bag; $bag->get('referer')->willReturn('http://myurl.com'); @@ -275,9 +277,10 @@ function it_has_criteria_parameter( Parameters $parameters, Request $request, ParameterBag $attributesBag, - ParameterBag $queryBag, - ParameterBag $requestBag, ): void { + $queryBag = new InputBag(); + $requestBag = new InputBag(); + $criteria = ['property' => 'myNewValue']; $request->attributes = $attributesBag; $request->query = $queryBag; @@ -287,9 +290,10 @@ function it_has_criteria_parameter( $parameters->get('criteria', Argument::any())->willReturn([]); $attributesBag->get('criteria', $request)->willReturn($request); - $queryBag->has('criteria')->willReturn(true); - $queryBag->all()->willReturn(['criteria' => $criteria]); - $requestBag->all()->willReturn(['criteria' => []]); + + $queryBag->set('criteria', $criteria); + + $requestBag->set('criteria', []); $this->getCriteria()->shouldReturn($criteria); } @@ -298,9 +302,10 @@ function it_has_criteria_parameter_in_request( Parameters $parameters, Request $request, ParameterBag $attributesBag, - ParameterBag $queryBag, - ParameterBag $requestBag, ): void { + $queryBag = new InputBag(); + $requestBag = new InputBag(); + $criteria = ['property' => 'myNewValue']; $request->attributes = $attributesBag; $request->query = $queryBag; @@ -310,9 +315,8 @@ function it_has_criteria_parameter_in_request( $parameters->get('criteria', Argument::any())->willReturn([]); $attributesBag->get('criteria', $request)->willReturn($request); - $queryBag->has('criteria')->willReturn(false); - $requestBag->has('criteria')->willReturn(true); - $requestBag->all()->willReturn(['criteria' => $criteria]); + + $requestBag->set('criteria', $criteria); $this->getCriteria()->shouldReturn($criteria); } @@ -321,9 +325,10 @@ function it_allows_to_override_criteria_parameter_in_route( Parameters $parameters, Request $request, ParameterBag $attributesBag, - ParameterBag $queryBag, - ParameterBag $requestBag, ): void { + $queryBag = new InputBag(); + $requestBag = new InputBag(); + $criteria = ['property' => 'myValue']; $overriddenCriteria = ['other_property' => 'myNewValue']; $combinedCriteria = ['property' => 'myValue', 'other_property' => 'myNewValue']; @@ -333,10 +338,12 @@ function it_allows_to_override_criteria_parameter_in_route( $parameters->get('filterable', false)->willReturn(true); $parameters->get('criteria', [])->willReturn($criteria); + $attributesBag->get('criteria', $request)->willReturn($request); - $queryBag->has('criteria')->willReturn(true); - $queryBag->all()->willReturn(['criteria' => $overriddenCriteria]); - $requestBag->all()->willReturn(['criteria' => []]); + + $queryBag->set('criteria', $overriddenCriteria); + + $requestBag->set('criteria', []); $this->getCriteria()->shouldReturn($combinedCriteria); @@ -346,18 +353,16 @@ function it_allows_to_override_criteria_parameter_in_route( $parameters->get('filterable', false)->willReturn(true); $parameters->get('criteria', Argument::any())->willReturn($criteria); $attributesBag->get('criteria', $request)->willReturn($request); - $queryBag->has('criteria')->willReturn(true); - $queryBag->all()->willReturn(['criteria' => $overriddenCriteria]); - $requestBag->all()->willReturn(['criteria' => []]); + $queryBag->set('criteria', $overriddenCriteria); + $requestBag->set('criteria', []); $this->getCriteria($defaultCriteria)->shouldReturn($combinedDefaultCriteria); $parameters->get('filterable', false)->willReturn(true); $parameters->get('criteria', [])->willReturn(['filter' => 'route']); $attributesBag->get('criteria', $request)->willReturn($request); - $queryBag->has('criteria')->willReturn(true); - $queryBag->all()->willReturn(['criteria' => ['filter' => 'request']]); - $requestBag->all()->willReturn(['criteria' => []]); + $queryBag->set('criteria', ['filter' => 'request']); + $requestBag->set('criteria', []); $this->getCriteria(['filter' => 'default'])->shouldReturn(['filter' => 'request']); } @@ -375,9 +380,10 @@ function it_has_sorting_parameter( Parameters $parameters, Request $request, ParameterBag $attributesBag, - ParameterBag $queryBag, - ParameterBag $requestBag, ): void { + $queryBag = new InputBag(); + $requestBag = new InputBag(); + $sorting = ['property' => 'asc']; $request->attributes = $attributesBag; $request->query = $queryBag; @@ -385,10 +391,12 @@ function it_has_sorting_parameter( $parameters->get('sortable', false)->willReturn(true); $parameters->get('sorting', Argument::any())->willReturn($sorting); + $attributesBag->get('sorting', $request)->willReturn($request); - $queryBag->has('sorting')->willReturn(true); - $queryBag->all()->willReturn(['sorting' => $sorting]); - $requestBag->get('sorting', [])->willReturn([]); + + $queryBag->set('sorting', $sorting); + + $requestBag->set('sorting', []); $this->getSorting()->shouldReturn($sorting); } @@ -408,9 +416,10 @@ function it_allows_to_override_sorting_parameter_in_route( Parameters $parameters, Request $request, ParameterBag $attributesBag, - ParameterBag $queryBag, - ParameterBag $requestBag, ): void { + $queryBag = new InputBag(); + $requestBag = new InputBag(); + $sorting = ['property' => 'desc']; $overriddenSorting = ['other_property' => 'asc']; $combinedSorting = ['other_property' => 'asc', 'property' => 'desc']; @@ -421,9 +430,8 @@ function it_allows_to_override_sorting_parameter_in_route( $parameters->get('sortable', false)->willReturn(true); $parameters->get('sorting', [])->willReturn($sorting); $attributesBag->get('sorting', $request)->willReturn($request); - $queryBag->has('sorting')->willReturn(true); - $queryBag->all()->willReturn(['sorting' => $overriddenSorting]); - $requestBag->get('sorting', [])->willReturn([]); + $queryBag->set('sorting', $overriddenSorting); + $requestBag->set('sorting', []); $this->getSorting()->shouldReturn($combinedSorting); @@ -433,18 +441,16 @@ function it_allows_to_override_sorting_parameter_in_route( $parameters->get('sortable', false)->willReturn(true); $parameters->get('sorting', Argument::any())->willReturn($sorting); $attributesBag->get('sorting', $request)->willReturn($request); - $queryBag->has('sorting')->willReturn(true); - $queryBag->all()->willReturn(['sorting' => $overriddenSorting]); - $requestBag->get('sorting', [])->willReturn([]); + $queryBag->set('sorting', $overriddenSorting); + $requestBag->set('sorting', []); $this->getSorting($defaultSorting)->shouldReturn($combinedDefaultSorting); $parameters->get('sortable', false)->willReturn(true); $parameters->get('sorting', [])->willReturn(['sort' => 'route']); $attributesBag->get('sorting', $request)->willReturn($request); - $queryBag->has('sorting')->willReturn(true); - $queryBag->all()->willReturn(['sorting' => ['sort' => 'request']]); - $requestBag->get('sorting', [])->willReturn([]); + $queryBag->set('sorting', ['sort' => 'request']); + $requestBag->set('sorting', []); $this->getSorting(['sort' => 'default'])->shouldReturn(['sort' => 'request']); } diff --git a/src/Bundle/spec/Controller/ResourceControllerSpec.php b/src/Bundle/spec/Controller/ResourceControllerSpec.php index 4daf97dcc..270c25110 100644 --- a/src/Bundle/spec/Controller/ResourceControllerSpec.php +++ b/src/Bundle/spec/Controller/ResourceControllerSpec.php @@ -43,7 +43,7 @@ use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Component\Form\Form; use Symfony\Component\Form\FormView; -use Symfony\Component\HttpFoundation\ParameterBag; +use Symfony\Component\HttpFoundation\InputBag; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Exception\BadRequestHttpException; @@ -1784,7 +1784,7 @@ function it_deletes_multiple_resources_and_redirects_to_index_for_html_request( $requestConfigurationFactory->create($metadata, $request)->willReturn($configuration); $configuration->hasPermission()->willReturn(true); $configuration->getPermission(ResourceActions::BULK_DELETE)->willReturn('sylius.product.bulk_delete'); - $request->request = new ParameterBag(['_csrf_token' => 'xyz']); + $request->request = new InputBag(['_csrf_token' => 'xyz']); $container->has('security.csrf.token_manager')->willReturn(true); $container->get('security.csrf.token_manager')->willReturn($csrfTokenManager); @@ -1903,7 +1903,7 @@ function it_deletes_a_resource_and_redirects_to_index_by_for_html_request( $requestConfigurationFactory->create($metadata, $request)->willReturn($configuration); $configuration->hasPermission()->willReturn(true); $configuration->getPermission(ResourceActions::DELETE)->willReturn('sylius.product.delete'); - $request->request = new ParameterBag(['_csrf_token' => 'xyz']); + $request->request = new InputBag(['_csrf_token' => 'xyz']); $container->has('security.csrf.token_manager')->willReturn(true); $container->get('security.csrf.token_manager')->willReturn($csrfTokenManager); @@ -1954,7 +1954,7 @@ function it_uses_response_from_post_delete_event_if_defined( $requestConfigurationFactory->create($metadata, $request)->willReturn($configuration); $configuration->hasPermission()->willReturn(true); $configuration->getPermission(ResourceActions::DELETE)->willReturn('sylius.product.delete'); - $request->request = new ParameterBag(['_csrf_token' => 'xyz']); + $request->request = new InputBag(['_csrf_token' => 'xyz']); $container->has('security.csrf.token_manager')->willReturn(true); $container->get('security.csrf.token_manager')->willReturn($csrfTokenManager); @@ -2005,7 +2005,7 @@ function it_does_not_delete_a_resource_and_redirects_to_index_for_html_requests_ $requestConfigurationFactory->create($metadata, $request)->willReturn($configuration); $configuration->hasPermission()->willReturn(true); $configuration->getPermission(ResourceActions::DELETE)->willReturn('sylius.product.delete'); - $request->request = new ParameterBag(['_csrf_token' => 'xyz']); + $request->request = new InputBag(['_csrf_token' => 'xyz']); $container->has('security.csrf.token_manager')->willReturn(true); $container->get('security.csrf.token_manager')->willReturn($csrfTokenManager); @@ -2056,7 +2056,7 @@ function it_does_not_delete_a_resource_and_uses_response_from_event_if_defined( $requestConfigurationFactory->create($metadata, $request)->willReturn($configuration); $configuration->hasPermission()->willReturn(true); $configuration->getPermission(ResourceActions::DELETE)->willReturn('sylius.product.delete'); - $request->request = new ParameterBag(['_csrf_token' => 'xyz']); + $request->request = new InputBag(['_csrf_token' => 'xyz']); $container->has('security.csrf.token_manager')->willReturn(true); $container->get('security.csrf.token_manager')->willReturn($csrfTokenManager); @@ -2109,7 +2109,7 @@ function it_does_not_correctly_delete_a_resource_and_returns_500_for_not_html_re $requestConfigurationFactory->create($metadata, $request)->willReturn($configuration); $configuration->hasPermission()->willReturn(true); $configuration->getPermission(ResourceActions::DELETE)->willReturn('sylius.product.delete'); - $request->request = new ParameterBag(['_csrf_token' => 'xyz']); + $request->request = new InputBag(['_csrf_token' => 'xyz']); $container->has('security.csrf.token_manager')->willReturn(true); $container->get('security.csrf.token_manager')->willReturn($csrfTokenManager); @@ -2159,7 +2159,7 @@ function it_deletes_a_resource_and_returns_204_for_non_html_requests( $requestConfigurationFactory->create($metadata, $request)->willReturn($configuration); $configuration->hasPermission()->willReturn(true); $configuration->getPermission(ResourceActions::DELETE)->willReturn('sylius.product.delete'); - $request->request = new ParameterBag(['_csrf_token' => 'xyz']); + $request->request = new InputBag(['_csrf_token' => 'xyz']); $container->has('security.csrf.token_manager')->willReturn(true); $container->get('security.csrf.token_manager')->willReturn($csrfTokenManager); @@ -2207,7 +2207,7 @@ function it_does_not_delete_a_resource_and_throws_http_exception_for_non_html_re $requestConfigurationFactory->create($metadata, $request)->willReturn($configuration); $configuration->hasPermission()->willReturn(true); $configuration->getPermission(ResourceActions::DELETE)->willReturn('sylius.product.delete'); - $request->request = new ParameterBag(['_csrf_token' => 'xyz']); + $request->request = new InputBag(['_csrf_token' => 'xyz']); $container->has('security.csrf.token_manager')->willReturn(true); $container->get('security.csrf.token_manager')->willReturn($csrfTokenManager); @@ -2259,7 +2259,7 @@ function it_throws_a_403_exception_if_csrf_token_is_invalid_during_delete_action $requestConfigurationFactory->create($metadata, $request)->willReturn($configuration); $configuration->hasPermission()->willReturn(true); $configuration->getPermission(ResourceActions::DELETE)->willReturn('sylius.product.delete'); - $request->request = new ParameterBag(['_csrf_token' => 'xyz']); + $request->request = new InputBag(['_csrf_token' => 'xyz']); $container->has('security.csrf.token_manager')->willReturn(true); $container->get('security.csrf.token_manager')->willReturn($csrfTokenManager); diff --git a/src/Bundle/spec/Controller/ResourcesCollectionProviderSpec.php b/src/Bundle/spec/Controller/ResourcesCollectionProviderSpec.php index c385bbee1..1b92ead68 100644 --- a/src/Bundle/spec/Controller/ResourcesCollectionProviderSpec.php +++ b/src/Bundle/spec/Controller/ResourcesCollectionProviderSpec.php @@ -13,27 +13,34 @@ namespace spec\Sylius\Bundle\ResourceBundle\Controller; -use Hateoas\Configuration\Route; use Hateoas\Representation\Factory\PagerfantaFactory; use Hateoas\Representation\PaginatedRepresentation; +use Pagerfanta\Adapter\ArrayAdapter; use Pagerfanta\Pagerfanta; +use PhpSpec\Exception\Example\SkippingException; use PhpSpec\ObjectBehavior; -use Prophecy\Argument; +use Prophecy\PhpUnit\ProphecyTrait; +use Sylius\Bundle\ResourceBundle\Controller\Parameters; use Sylius\Bundle\ResourceBundle\Controller\RequestConfiguration; use Sylius\Bundle\ResourceBundle\Controller\ResourcesCollectionProviderInterface; +use Sylius\Bundle\ResourceBundle\Controller\ResourcesResolver; use Sylius\Bundle\ResourceBundle\Controller\ResourcesResolverInterface; use Sylius\Bundle\ResourceBundle\Grid\View\ResourceGridView; use Sylius\Component\Grid\Definition\Grid; use Sylius\Resource\Doctrine\Persistence\RepositoryInterface; +use Sylius\Resource\Metadata\MetadataInterface; use Sylius\Resource\Model\ResourceInterface; +use Symfony\Component\HttpFoundation\InputBag; use Symfony\Component\HttpFoundation\ParameterBag; use Symfony\Component\HttpFoundation\Request; final class ResourcesCollectionProviderSpec extends ObjectBehavior { - function let(ResourcesResolverInterface $resourcesResolver, PagerfantaFactory $pagerfantaRepresentationFactory): void + use ProphecyTrait; + + function let(ResourcesResolverInterface $resourcesResolver): void { - $this->beConstructedWith($resourcesResolver, $pagerfantaRepresentationFactory); + $this->beConstructedWith($resourcesResolver, null); } function it_implements_resources_collection_provider_interface(): void @@ -61,8 +68,9 @@ function it_handles_Pagerfanta( RepositoryInterface $repository, Pagerfanta $paginator, Request $request, - ParameterBag $queryParameters, ): void { + $queryParameters = new InputBag(); + $requestConfiguration->isHtmlRequest()->willReturn(true); $requestConfiguration->getPaginationMaxPerPage()->willReturn(5); @@ -70,9 +78,8 @@ function it_handles_Pagerfanta( $requestConfiguration->getRequest()->willReturn($request); $request->query = $queryParameters; - $queryParameters->has('limit')->willReturn(true); - $queryParameters->getInt('limit')->willReturn(5); - $queryParameters->get('page', 1)->willReturn(6); + $queryParameters->set('limit', 5); + $queryParameters->set('page', 6); $paginator->setMaxPerPage(5)->shouldBeCalled(); $paginator->setCurrentPage(6)->shouldBeCalled(); @@ -89,8 +96,9 @@ function it_restricts_max_pagination_limit_based_on_grid_configuration( Grid $grid, Pagerfanta $paginator, Request $request, - ParameterBag $queryParameters, ): void { + $queryParameters = new InputBag(); + $requestConfiguration->isHtmlRequest()->willReturn(true); $requestConfiguration->getPaginationMaxPerPage()->willReturn(1000); @@ -103,9 +111,8 @@ function it_restricts_max_pagination_limit_based_on_grid_configuration( $requestConfiguration->getRequest()->willReturn($request); $request->query = $queryParameters; - $queryParameters->has('limit')->willReturn(true); - $queryParameters->getInt('limit')->willReturn(1000); - $queryParameters->get('page', 1)->willReturn(1); + $queryParameters->set('limit', 1000); + $queryParameters->set('page', 1); $paginator->setMaxPerPage(99)->shouldBeCalled(); $paginator->setCurrentPage(1)->shouldBeCalled(); @@ -115,39 +122,24 @@ function it_restricts_max_pagination_limit_based_on_grid_configuration( } function it_creates_a_paginated_representation_for_pagerfanta_for_non_html_requests( - ResourcesResolverInterface $resourcesResolver, - RequestConfiguration $requestConfiguration, RepositoryInterface $repository, - Pagerfanta $paginator, - Request $request, - ParameterBag $queryParameters, - ParameterBag $requestAttributes, - PagerfantaFactory $pagerfantaRepresentationFactory, - PaginatedRepresentation $paginatedRepresentation, + MetadataInterface $metadata, ): void { - $requestConfiguration->isHtmlRequest()->willReturn(false); - $requestConfiguration->getPaginationMaxPerPage()->willReturn(8); + if (!class_exists(PagerfantaFactory::class)) { + throw new SkippingException('PagerfantaFactory is not installed.'); + } - $resourcesResolver->getResources($requestConfiguration, $repository)->willReturn($paginator); + $this->beConstructedWith(new ResourcesResolver(), new PagerfantaFactory()); - $requestConfiguration->getRequest()->willReturn($request); - $request->query = $queryParameters; - $queryParameters->has('limit')->willReturn(true); - $queryParameters->getInt('limit')->willReturn(8); - $queryParameters->get('page', 1)->willReturn(6); - $queryParameters->all()->willReturn(['foo' => 2, 'bar' => 15]); + $paginator = new Pagerfanta(new ArrayAdapter([])); + $repository->createPaginator([], [])->willReturn($paginator); - $request->attributes = $requestAttributes; - $requestAttributes->get('_route')->willReturn('sylius_product_index'); - $requestAttributes->get('_route_params')->willReturn(['slug' => 'foo-bar']); + $request = new Request(); + $request->query = new InputBag(['limit' => 8, 'page' => 1]); + $request->attributes = new ParameterBag(['_format' => 'json', '_route' => 'sylius_product_index', '_route_params' => ['slug' => 'foo-bar']]); + $requestConfiguration = new RequestConfiguration($metadata->getWrappedObject(), $request, new Parameters(['paginate' => true])); - $paginator->setMaxPerPage(8)->shouldBeCalled(); - $paginator->setCurrentPage(6)->shouldBeCalled(); - $paginator->getCurrentPageResults()->willReturn([]); - - $pagerfantaRepresentationFactory->createRepresentation($paginator, Argument::type(Route::class))->willReturn($paginatedRepresentation); - - $this->get($requestConfiguration, $repository)->shouldReturn($paginatedRepresentation); + $this->get($requestConfiguration, $repository)->shouldHaveType(PaginatedRepresentation::class); } function it_handles_resource_grid_view( @@ -158,8 +150,9 @@ function it_handles_resource_grid_view( Grid $grid, Pagerfanta $paginator, Request $request, - ParameterBag $queryParameters, ): void { + $queryParameters = new InputBag(); + $requestConfiguration->isHtmlRequest()->willReturn(true); $requestConfiguration->getPaginationMaxPerPage()->willReturn(5); @@ -171,9 +164,8 @@ function it_handles_resource_grid_view( $requestConfiguration->getRequest()->willReturn($request); $request->query = $queryParameters; - $queryParameters->has('limit')->willReturn(true); - $queryParameters->getInt('limit')->willReturn(5); - $queryParameters->get('page', 1)->willReturn(6); + $queryParameters->set('limit', 5); + $queryParameters->set('page', 6); $paginator->setMaxPerPage(5)->shouldBeCalled(); $paginator->setCurrentPage(6)->shouldBeCalled(); diff --git a/src/Bundle/spec/Grid/Controller/ResourcesResolverSpec.php b/src/Bundle/spec/Grid/Controller/ResourcesResolverSpec.php index cea6e0b6b..563c22cb4 100644 --- a/src/Bundle/spec/Grid/Controller/ResourcesResolverSpec.php +++ b/src/Bundle/spec/Grid/Controller/ResourcesResolverSpec.php @@ -26,7 +26,7 @@ use Sylius\Resource\Doctrine\Persistence\RepositoryInterface; use Sylius\Resource\Metadata\MetadataInterface; use Sylius\Resource\Model\ResourceInterface; -use Symfony\Component\HttpFoundation\ParameterBag; +use Symfony\Component\HttpFoundation\InputBag; use Symfony\Component\HttpFoundation\Request; final class ResourcesResolverSpec extends ObjectBehavior @@ -66,7 +66,6 @@ function it_returns_grid_view( ResourceGridView $gridView, MetadataInterface $metadata, Request $request, - ParameterBag $queryParameters, ): void { $requestConfiguration->hasGrid()->willReturn(true); $requestConfiguration->getGrid()->willReturn('sylius_admin_tax_category'); @@ -74,8 +73,7 @@ function it_returns_grid_view( $requestConfiguration->isHtmlRequest()->willReturn(true); $requestConfiguration->getRequest()->willReturn($request); - $request->query = $queryParameters; - $queryParameters->all()->willReturn(['foo' => 'bar']); + $request->query = new InputBag(['foo' => 'bar']); $gridProvider->get('sylius_admin_tax_category')->willReturn($gridDefinition); $gridViewFactory->create($gridDefinition, Argument::type(Parameters::class), $metadata, $requestConfiguration)->willReturn($gridView); @@ -93,7 +91,6 @@ function it_returns_grid_data_for_non_html_requests( Pagerfanta $paginator, MetadataInterface $metadata, Request $request, - ParameterBag $queryParameters, ): void { $requestConfiguration->hasGrid()->willReturn(true); $requestConfiguration->getGrid()->willReturn('sylius_admin_tax_category'); @@ -101,8 +98,7 @@ function it_returns_grid_data_for_non_html_requests( $requestConfiguration->isHtmlRequest()->willReturn(false); $requestConfiguration->getRequest()->willReturn($request); - $request->query = $queryParameters; - $queryParameters->all()->willReturn(['foo' => 'bar']); + $request->query = new InputBag(['foo' => 'bar']); $gridProvider->get('sylius_admin_tax_category')->willReturn($gridDefinition); $gridViewFactory->create($gridDefinition, Argument::type(Parameters::class), $metadata, $requestConfiguration)->willReturn($gridView); diff --git a/src/Component/spec/Symfony/Request/RepositoryArgumentResolverSpec.php b/src/Component/spec/Symfony/Request/RepositoryArgumentResolverSpec.php index c6417fae6..1cc796e1b 100644 --- a/src/Component/spec/Symfony/Request/RepositoryArgumentResolverSpec.php +++ b/src/Component/spec/Symfony/Request/RepositoryArgumentResolverSpec.php @@ -34,7 +34,7 @@ function it_gets_arguments_to_sent_to_the_repository( ): void { $request->attributes = $attributes; $request->query = new InputBag([]); - $request->request = new ParameterBag(); + $request->request = new InputBag(); $attributes->all('_route_params')->willReturn(['id' => 'my_id']); @@ -52,7 +52,7 @@ function it_uses_query_params_when_route_params_are_not_matching( ): void { $request->attributes = $attributes; $request->query = new InputBag(['id' => 'my_id']); - $request->request = new ParameterBag(); + $request->request = new InputBag(); $attributes->all('_route_params')->willReturn(['_sylius' => ['resource' => 'app.dummy']]); @@ -70,7 +70,7 @@ function it_uses_request_params_when_route_params_are_not_matching( ): void { $request->attributes = $attributes; $request->query = new InputBag(); - $request->request = new ParameterBag(['id' => 'my_id']); + $request->request = new InputBag(['id' => 'my_id']); $attributes->all('_route_params')->willReturn(['_sylius' => ['resource' => 'app.dummy']]); @@ -88,7 +88,7 @@ function it_encapsulates_arguments_when_the_method_has_only_one_required_array_a ): void { $request->attributes = $attributes; $request->query = new InputBag([]); - $request->request = new ParameterBag(); + $request->request = new InputBag(); $attributes->all('_route_params')->willReturn(['enabled' => 'true', 'author' => 'author@example.com']); @@ -109,7 +109,7 @@ function it_return_array_values_when_method_is_magic( ): void { $request->attributes = $attributes; $request->query = new InputBag(); - $request->request = new ParameterBag(['ids' => ['first_id', 'second_id']]); + $request->request = new InputBag(['ids' => ['first_id', 'second_id']]); $attributes->all('_route_params')->willReturn(['_sylius' => ['resource' => 'app.dummy']]); diff --git a/src/Component/spec/Symfony/Request/State/ProviderSpec.php b/src/Component/spec/Symfony/Request/State/ProviderSpec.php index 22d5fca3c..05d3fbb89 100644 --- a/src/Component/spec/Symfony/Request/State/ProviderSpec.php +++ b/src/Component/spec/Symfony/Request/State/ProviderSpec.php @@ -50,7 +50,7 @@ function it_calls_repository_as_callable( $request->attributes = new ParameterBag(['_route_params' => ['id' => 'my_id']]); $request->query = new InputBag([]); - $request->request = new ParameterBag(); + $request->request = new InputBag(); $response = $this->provide($operation, new Context(new RequestOption($request->getWrappedObject()))); $response->shouldHaveType(\stdClass::class); @@ -70,7 +70,7 @@ function it_calls_repository_as_string( $request->attributes = new ParameterBag(['_route_params' => ['id' => 'my_id', '_sylius' => ['resource' => 'app.dummy']]]); $request->query = new InputBag([]); - $request->request = new ParameterBag(); + $request->request = new InputBag(); $locator->has('App\Repository')->willReturn(true); $locator->get('App\Repository')->willReturn($repository); @@ -91,7 +91,7 @@ function it_calls_create_paginator_by_default_on_collection_operations( $request->attributes = new ParameterBag(['_route_params' => ['id' => 'my_id', '_sylius' => ['resource' => 'app.dummy']]]); $request->query = new InputBag([]); - $request->request = new ParameterBag(); + $request->request = new InputBag(); $locator->has('App\Repository')->willReturn(true); $locator->get('App\Repository')->willReturn($repository); @@ -113,7 +113,7 @@ function it_sets_current_page_from_request_when_data_is_a_paginator( $request->attributes = new ParameterBag(['_route_params' => ['id' => 'my_id', '_sylius' => ['resource' => 'app.dummy']]]); $request->query = new InputBag(['page' => 42]); - $request->request = new ParameterBag(); + $request->request = new InputBag(); $locator->has('App\Repository')->willReturn(true); $locator->get('App\Repository')->willReturn($repository); @@ -139,7 +139,7 @@ function it_calls_repository_as_string_with_specific_repository_method( $request->attributes = new ParameterBag(['_route_params' => ['id' => 'my_id', '_sylius' => ['resource' => 'app.dummy']]]); $request->query = new InputBag([]); - $request->request = new ParameterBag(); + $request->request = new InputBag(); $locator->has('App\Repository')->willReturn(true); $locator->get('App\Repository')->willReturn($repository);