function it_modifies_all_child_queries(QueryBuilder $queryBuilder, Specification $specificationA, Specification $specificationB) { $dqlAlias = 'a'; $specificationA->modify($queryBuilder, $dqlAlias)->shouldBeCalled(); $specificationB->modify($queryBuilder, $dqlAlias)->shouldBeCalled(); $this->modify($queryBuilder, $dqlAlias); }
/** * Prepare a Query with a Specification. * * @param Specification $specification * @param Result\ResultModifier $modifier * * @return \Doctrine\ORM\Query */ public function getQuery(Specification $specification, Result\ResultModifier $modifier = null) { $alias = $this->alias; $qb = $this->createQueryBuilder($alias); $specification->modify($qb, $alias); $query = $qb->where($specification->getFilter($qb, $alias))->getQuery(); if ($modifier !== null) { $modifier->modify($query); return $query; } return $query; }