/**
  * {@inheritdoc}
  */
 public function create(Grid $grid, Parameters $parameters, MetadataInterface $metadata, RequestConfiguration $requestConfiguration)
 {
     $driverConfiguration = $grid->getDriverConfiguration();
     $request = $requestConfiguration->getRequest();
     $grid->setDriverConfiguration($this->parametersParser->parseRequestValues($driverConfiguration, $request));
     return new ResourceGridView($this->dataProvider->getData($grid, $parameters), $grid, $parameters, $metadata, $requestConfiguration);
 }
 function it_creates_configuration_without_default_settings(ParametersParserInterface $parametersParser, MetadataInterface $metadata, Request $request, ParameterBag $headersBag, ParameterBag $attributesBag)
 {
     $request->headers = $headersBag;
     $request->attributes = $attributesBag;
     $attributesBag->get('_sylius', [])->willReturn(['template' => ':Product:list.html.twig']);
     $parametersParser->parseRequestValues(['template' => ':Product:list.html.twig'], $request)->willReturn(['template' => ':Product:list.html.twig']);
     $this->create($metadata, $request)->isSortable()->shouldReturn(false);
 }
 function it_uses_data_provider_to_create_a_view_with_data_and_definition(DataProviderInterface $dataProvider, ParametersParserInterface $parametersParser, Grid $grid, Parameters $parameters, MetadataInterface $resourceMetadata, Request $request, RequestConfiguration $requestConfiguration)
 {
     $expectedResourceGridView = new ResourceGridView(['foo', 'bar'], $grid->getWrappedObject(), $parameters->getWrappedObject(), $resourceMetadata->getWrappedObject(), $requestConfiguration->getWrappedObject());
     $requestConfiguration->getRequest()->willReturn($request);
     $parametersParser->parseRequestValues(['repository' => ['method' => 'createByCustomerQueryBuilder', 'arguments' => ['$customerId']]], $request)->willReturn(['repository' => ['method' => 'createByCustomerQueryBuilder', 'arguments' => [5]]]);
     $grid->getDriverConfiguration()->willReturn(['repository' => ['method' => 'createByCustomerQueryBuilder', 'arguments' => ['$customerId']]]);
     $grid->setDriverConfiguration(['repository' => ['method' => 'createByCustomerQueryBuilder', 'arguments' => [5]]])->shouldBeCalled();
     $dataProvider->getData($grid, $parameters)->willReturn(['foo', 'bar']);
     $this->create($grid, $parameters, $resourceMetadata, $requestConfiguration)->shouldBeSameResourceGridViewAs($expectedResourceGridView);
 }
 /**
  * {@inheritdoc}
  */
 public function create(MetadataInterface $metadata, Request $request)
 {
     $parameters = array_merge($this->defaultParameters, $this->parseApiParameters($request));
     $parameters = $this->parametersParser->parseRequestValues($parameters, $request);
     return new $this->configurationClass($metadata, $request, new Parameters($parameters));
 }