コード例 #1
0
ファイル: MarketingListTest.php プロジェクト: antrampa/crm
 public function testGetDefinition()
 {
     $definition = 'test';
     $segment = $this->getMock('Oro\\Bundle\\SegmentBundle\\Entity\\Segment');
     $segment->expects($this->once())->method('getDefinition')->will($this->returnValue($definition));
     $this->assertNull($this->entity->getDefinition());
     $this->entity->setSegment($segment);
     $this->assertEquals($definition, $this->entity->getDefinition($definition));
 }
コード例 #2
0
 /**
  * {@inheritdoc}
  */
 public function load(ObjectManager $manager)
 {
     foreach ($this->mlData as $data) {
         $entity = new MarketingList();
         $type = $manager->getRepository('OroCRMMarketingListBundle:MarketingListType')->find($data['type']);
         $segment = $this->getReference($data['segment']);
         $entity->setType($type);
         $entity->setSegment($segment);
         $this->setEntityPropertyValues($entity, $data, ['reference', 'type', 'segment']);
         $this->setReference($data['reference'], $entity);
         $manager->persist($entity);
     }
     $manager->flush();
 }
コード例 #3
0
 /**
  * @param array $iterable
  *
  * @dataProvider sendDataProvider
  */
 public function testSendError($iterable, $to)
 {
     $segment = new Segment();
     $marketingList = new MarketingList();
     $marketingList->setSegment($segment);
     $campaign = new EmailCampaign();
     $campaign->setMarketingList($marketingList)->setSenderEmail(reset($to));
     $itCount = count($iterable);
     $this->marketingListProvider->expects($this->once())->method('getMarketingListEntitiesIterator')->will($this->returnValue($iterable));
     $manager = $this->getMockBuilder('\\Doctrine\\ORM\\EntityManager')->disableOriginalConstructor()->getMock();
     $this->registry->expects($this->once())->method('getManager')->will($this->returnValue($manager));
     $manager->expects($this->once())->method('persist')->with($campaign);
     $manager->expects($this->atLeastOnce())->method('flush');
     $manager->expects($this->exactly($itCount))->method('beginTransaction');
     $manager->expects($this->exactly($itCount))->method('rollback');
     if ($itCount) {
         $this->contactInformationFieldsProvider->expects($this->exactly($itCount))->method('getQueryContactInformationFields')->with($this->equalTo($segment), $this->isType('object'), $this->equalTo(ContactInformationFieldsProvider::CONTACT_INFORMATION_SCOPE_EMAIL))->will($this->returnValue($to));
         $this->marketingListConnector->expects($this->exactly($itCount))->method('contact')->with($this->equalTo($marketingList), $this->equalTo(self::ENTITY_ID))->will($this->returnCallback(function () {
             throw new \Exception('Error');
         }));
         $this->logger->expects($this->exactly($itCount))->method('error');
     }
     $this->transport->expects($this->exactly($itCount))->method('send');
     $this->transportProvider->expects($this->once())->method('getTransportByName')->will($this->returnValue($this->transport));
     $this->sender->setEmailCampaign($campaign);
     $this->sender->send($campaign);
 }
コード例 #4
0
ファイル: MarketingListHandler.php プロジェクト: dairdr/crm
 /**
  * @param MarketingList $marketingList
  */
 protected function processSegment(MarketingList $marketingList)
 {
     $requestData = $this->request->get($this->form->getName());
     $segment = $marketingList->getSegment();
     if (!$segment) {
         $segment = new Segment();
     }
     $segmentName = $this->translator->trans('orocrm.marketinglist.segment', ['%name%' => $marketingList->getName()]);
     $segment->setName($segmentName)->setEntity($marketingList->getEntity())->setType($this->getSegmentTypeByMarketingListType($marketingList->getType()))->setDefinition($requestData['definition'])->setOwner($marketingList->getOwner()->getOwner());
     $marketingList->setSegment($segment);
 }
コード例 #5
0
 /**
  * @param array $iterable
  * @param array $to
  * @param object $type
  * @dataProvider sendDataProvider
  */
 public function testSendError($iterable, $to, $type)
 {
     $segment = new Segment();
     $entity = '\\stdClass';
     $marketingList = new MarketingList();
     $marketingList->setSegment($segment);
     $marketingList->setType($type);
     $marketingList->setEntity($entity);
     $campaign = new EmailCampaign();
     $campaign->setMarketingList($marketingList)->setSenderEmail(reset($to));
     $itCount = count($iterable);
     $this->marketingListProvider->expects($this->once())->method('getMarketingListEntitiesIterator')->will($this->returnValue($iterable));
     $manager = $this->getMockBuilder('\\Doctrine\\ORM\\EntityManager')->disableOriginalConstructor()->getMock();
     $this->registry->expects($this->once())->method('getManager')->will($this->returnValue($manager));
     $manager->expects($this->once())->method('persist')->with($campaign);
     $manager->expects($this->atLeastOnce())->method('flush');
     $manager->expects($this->exactly($itCount))->method('beginTransaction');
     $manager->expects($this->exactly($itCount))->method('rollback');
     $fields = ['email'];
     $this->assertFieldsCall($fields, $marketingList);
     if ($itCount) {
         $this->contactInformationFieldsProvider->expects($this->exactly($itCount))->method('getTypedFieldsValues')->with($this->equalTo($fields), $this->isType('object'))->will($this->returnValue($to));
         $this->statisticsConnector->expects($this->exactly($itCount))->method('getStatisticsRecord')->with($this->equalTo($campaign), $this->isInstanceOf('stdClass'))->willThrowException(new \Exception('Error'));
         $this->logger->expects($this->exactly($itCount))->method('error');
     }
     $this->transport->expects($this->exactly($itCount))->method('send');
     $this->transportProvider->expects($this->once())->method('getTransportByName')->will($this->returnValue($this->transport));
     $this->sender->setEmailCampaign($campaign);
     $this->sender->send($campaign);
 }