/**
  * @dataProvider queryBuilderDataProvider
  * @param string $type
  */
 public function testGetMarketingListEntitiesIterator($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('\\Iterator', $this->provider->getMarketingListEntitiesIterator($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;
 }
Example #3
0
 /**
  * @return \Iterator|null
  */
 protected function getIterator()
 {
     return $this->marketingListProvider->getMarketingListEntitiesIterator($this->emailCampaign->getMarketingList());
 }
Example #4
0
 public function testGetMarketingListEntitiesIterator()
 {
     $marketingList = $this->getMarketingList(MarketingListType::TYPE_DYNAMIC);
     $this->assertEntitiesQueryBuilder($marketingList);
     $this->assertInstanceOf('\\Iterator', $this->provider->getMarketingListEntitiesIterator($marketingList));
 }