/** * Create a new Sulu Query object. * * @param QueryCreateEvent $event */ public function handleCreate(QueryCreateEvent $event) { $innerQuery = $event->getInnerQuery(); if (is_string($innerQuery)) { $phpcrQuery = $this->getQueryManager()->createQuery($innerQuery, QueryInterface::JCR_SQL2); } elseif ($innerQuery instanceof QueryInterface) { $phpcrQuery = $innerQuery; } else { throw new \InvalidArgumentException(sprintf('Expected inner query to be either a string or a PHPCR query object, got: "%s"', is_object($innerQuery) ? get_class($innerQuery) : gettype($innerQuery))); } $event->setQuery(new Query($phpcrQuery, $this->eventDispatcher, $event->getLocale(), $event->getOptions(), $event->getPrimarySelector())); }
/** * It should provide a Query object for a PHPCR query object. */ public function testHandleCreateFromPhpcrQuery() { $locale = 'fr'; $primarySelector = 'p'; $this->queryCreateEvent->getInnerQuery()->willReturn($this->phpcrQuery->reveal()); $this->queryCreateEvent->getLocale()->willReturn($locale); $this->queryCreateEvent->getOptions()->willReturn([]); $this->queryCreateEvent->getPrimarySelector()->willReturn($primarySelector); $this->queryManager->createQuery($this->phpcrQuery->reveal(), 'JCR-SQL2')->willReturn($this->phpcrQuery->reveal()); $this->queryCreateEvent->setQuery(new Query($this->phpcrQuery->reveal(), $this->dispatcher->reveal(), $locale, [], $primarySelector))->shouldBeCalled(); $this->subscriber->handleCreate($this->queryCreateEvent->reveal()); }
public function handleQueryCreate(QueryCreateEvent $event) { $this->queryCreate = true; $event->setQuery($this->query); }