/** * @dataProvider queryBuilderDataProvider * @param string $type */ public function testGetMarketingListEntitiesQueryBuilder($type) { $marketingList = $this->getMarketingList($type); $from = $this->getMockBuilder('Doctrine\\ORM\\Query\\Expr\\From')->disableOriginalConstructor()->getMock(); $from->expects($this->once())->method('getAlias')->will($this->returnValue('alias')); $queryBuilder = $this->assertEntitiesQueryBuilder($marketingList, 'alias'); $queryBuilder->expects($this->once())->method('getDQLPart')->with('from')->will($this->returnValue([$from])); $this->assertInstanceOf('Doctrine\\ORM\\QueryBuilder', $this->provider->getMarketingListEntitiesQueryBuilder($marketingList)); }
/** * @param StaticSegment $staticSegment * * @throws \InvalidArgumentException * @return QueryBuilder */ protected function getIteratorQueryBuilder(StaticSegment $staticSegment) { $marketingList = $staticSegment->getMarketingList(); $qb = $this->marketingListProvider->getMarketingListEntitiesQueryBuilder($marketingList, MarketingListProvider::FULL_ENTITIES_MIXIN); $this->prepareIteratorPart($qb); /** @var From[] $from */ $from = $qb->getDQLPart('from'); $entityAlias = $from[0]->getAlias(); $parts = $this->formatter->extractNamePartsPaths($marketingList->getEntity(), $entityAlias); $qb->resetDQLPart('select'); if (isset($parts['first_name'])) { $qb->addSelect(sprintf('%s AS %s', $parts['first_name'], MemberSyncDataConverter::FIRST_NAME_KEY)); } if (isset($parts['last_name'])) { $qb->addSelect(sprintf('%s AS %s', $parts['last_name'], MemberSyncDataConverter::LAST_NAME_KEY)); } $this->marketingListQueryBuilderAdapter->prepareMarketingListEntities($staticSegment, $qb); return $qb; }
public function testGetMarketingListEntitiesQueryBuilderManual() { $marketingList = $this->getMarketingList(MarketingListType::TYPE_MANUAL); $this->assertNull($this->provider->getMarketingListEntitiesQueryBuilder($marketingList)); }