/** * {@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); }
/** * {@inheritdoc} */ public function getDataSource(Grid $grid, Parameters $parameters) { $driver = $grid->getDriver(); if (!$this->driversRegistry->has($driver)) { throw new UnsupportedDriverException($driver); } return $this->driversRegistry->get($driver)->getDataSource($grid->getDriverConfiguration(), $parameters); }
function it_uses_a_correct_driver_to_get_the_data_for_a_grid(ServiceRegistryInterface $driversRegistry, DriverInterface $driver, Grid $grid, Parameters $parameters) { $grid->getDriver()->willReturn('doctrine/orm'); $grid->getDriverConfiguration()->willReturn(['resource' => 'sylius.tax_category']); $driversRegistry->has('doctrine/orm')->willReturn(true); $driversRegistry->get('doctrine/orm')->willReturn($driver); $driver->getDataSource(['resource' => 'sylius.tax_category'], $parameters)->willReturn(['foo', 'bar']); $this->getDataSource($grid, $parameters)->shouldReturn(['foo', 'bar']); }
/** * {@inheritdoc} */ public function getDataSource(Grid $grid, Parameters $parameters) { $driverName = $grid->getDriver(); if (!$this->driversRegistry->has($driverName)) { throw new UnsupportedDriverException($driverName); } /** @var DriverInterface $driver */ $driver = $this->driversRegistry->get($driverName); return $driver->getDataSource($grid->getDriverConfiguration(), $parameters); }
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); }