function let(MassActionHandlerRegistry $handlerRegistry, ManagerInterface $manager, RequestParameters $requestParams, MassActionParametersParser $parametersParser, DatagridInterface $grid, Acceptor $acceptor, DatasourceInterface $acceptedDatasource, DatasourceInterface $datasource, QueryBuilder $queryBuilder)
 {
     $this->beConstructedWith($handlerRegistry, $manager, $requestParams, $parametersParser);
     $acceptedDatasource->getQueryBuilder()->willReturn($queryBuilder);
     $grid->getAcceptor()->willReturn($acceptor);
     $grid->getAcceptedDatasource()->willReturn($acceptedDatasource);
     $grid->getDatasource()->willReturn($datasource);
     $manager->getDatagrid('grid')->willReturn($grid);
 }
 function it_applies_a_selector(DatasourceInterface $datasource, DatagridConfiguration $configuration, QueryBuilder $queryBuilder)
 {
     $datasource->getQueryBuilder()->willReturn($queryBuilder);
     $queryBuilder->getRootAlias()->willReturn('p');
     $queryBuilder->leftJoin('p.family', 'family')->willReturn($queryBuilder);
     $queryBuilder->leftJoin('family.translations', 'ft', 'WITH', 'ft.locale = :dataLocale')->willReturn($queryBuilder);
     $queryBuilder->addSelect('COALESCE(NULLIF(ft.label, \'\'), CONCAT(\'[\', family.code, \']\')) as familyLabel')->shouldBeCalled();
     $this->apply($datasource, $configuration);
 }
 /**
  * Retrieve entity ids, filters, sorters and limits are already in the datasource query builder
  *
  * @param DatasourceInterface $datasource
  *
  * @return array
  */
 protected function getEntityIds(DatasourceInterface $datasource)
 {
     $getIdsQb = clone $datasource->getQueryBuilder();
     $rootEntity = current($getIdsQb->getRootEntities());
     $rootAlias = $getIdsQb->getRootAlias();
     $rootField = $rootAlias . '.id';
     $getIdsQb->add('from', new From($rootEntity, $rootAlias, $rootField), false);
     $getIdsQb->groupBy($rootField);
     QueryBuilderUtility::removeExtraParameters($getIdsQb);
     $results = $getIdsQb->getQuery()->getResult(AbstractQuery::HYDRATE_ARRAY);
     return array_keys($results);
 }