Exemplo n.º 1
0
 /**
  * {@inheritdoc}
  */
 public function load(ObjectManager $manager)
 {
     $website = new TrackingWebsite();
     $website->setName('website1')->setIdentifier(1)->setUrl('http://localhost');
     $manager->persist($website);
     $campaignCodes = ['cmp1', 'cmp2', 'cmp3'];
     foreach ($campaignCodes as $code) {
         foreach ($this->data as $data) {
             $entity = new TrackingEvent();
             $entity->setWebsite($website)->setCode($code);
             $data['loggedAt'] = new \DateTime($data['loggedAt'], new \DateTimeZone('UTC'));
             $excludeProperties = ['reference'];
             $propertyAccessor = PropertyAccess::createPropertyAccessor();
             foreach ($data as $property => $value) {
                 if (in_array($property, $excludeProperties)) {
                     continue;
                 }
                 $propertyAccessor->setValue($entity, $property, $value);
             }
             $this->setReference($code . $data['reference'], $entity);
             $manager->persist($entity);
         }
     }
     $manager->flush();
 }
 /**
  * @dataProvider processData
  * @param $isFind
  */
 public function testProcessEvent($isFind)
 {
     $event = new TrackingVisitEvent();
     $webEvent = new TrackingEvent();
     $webEvent->setCode('test');
     $event->setWebEvent($webEvent);
     $testResult = new \stdClass();
     $repo = $this->getMockBuilder('Doctrine\\Common\\Persistence\\ObjectRepository')->disableOriginalConstructor()->getMock();
     $this->em->expects($this->once())->method('getRepository')->with('OroCRMCampaignBundle:Campaign')->willReturn($repo);
     $repo->expects($this->once())->method('findOneBy')->with(['code' => 'test'])->willReturn($isFind ? $testResult : null);
     $this->assertEquals($isFind ? [$testResult] : [], $this->provider->processEvent($event));
 }
Exemplo n.º 3
0
 /**
  * Get Event dictionary for given tracking event
  *
  * @param TrackingEvent $event
  * @return TrackingEventDictionary
  */
 protected function getEventType(TrackingEvent $event)
 {
     $eventWebsite = $event->getWebsite();
     if ($eventWebsite && isset($this->eventDictionary[$eventWebsite->getId()], $this->eventDictionary[$eventWebsite->getId()][$event->getName()])) {
         $eventType = $this->eventDictionary[$eventWebsite->getId()][$event->getName()];
     } else {
         $eventType = $this->getEntityManager()->getRepository('OroTrackingBundle:TrackingEventDictionary')->findOneBy(['name' => $event->getName(), 'website' => $eventWebsite]);
     }
     if (!$eventType) {
         $eventType = new TrackingEventDictionary();
         $eventType->setName($event->getName());
         $eventType->setWebsite($eventWebsite);
         $this->getEntityManager()->persist($eventType);
         $this->eventDictionary[$eventWebsite ? $eventWebsite->getId() : null][$event->getName()] = $eventType;
     }
     return $eventType;
 }
Exemplo n.º 4
0
 public function testPrePersist()
 {
     $this->assertNull($this->event->getCreatedAt());
     $this->event->prePersist();
     $this->assertInstanceOf('\\DateTime', $this->event->getCreatedAt());
 }
 /**
  * @dataProvider processEventProvider
  *
  * @param $eventType
  * @param $eventValue
  * @param $repoClass
  * @param $parameters
  * @param $channel
  */
 public function testProcessEvent($eventType, $eventValue, $repoClass, $parameters, $channel)
 {
     $trackingEvent = new TrackingVisitEvent();
     $visit = new TrackingVisit();
     $channel->setChannelType(ChannelType::TYPE);
     $website = new TestTrackingWebsite();
     $website->setChannel($channel);
     $visit->setTrackingWebsite($website);
     $trackingDict = new TrackingEventDictionary();
     $trackingDict->setName($eventType);
     $trackingEvent->setEvent($trackingDict);
     $trackingEvent->setWebsite($website);
     $trackingEvent->setVisit($visit);
     $webEvent = new TrackingEvent();
     $webEvent->setValue($eventValue);
     $trackingEvent->setWebEvent($webEvent);
     $repo = $this->getMockBuilder('Doctrine\\Common\\Persistence\\ObjectRepository')->disableOriginalConstructor()->getMock();
     $this->em->expects($this->once())->method('getRepository')->with($repoClass)->willReturn($repo);
     $repo->expects($this->once())->method('findOneBy')->with($parameters)->willReturn(new \stdClass());
     $this->provider->processEvent($trackingEvent);
 }