/** * @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); }
/** * 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; }
public function testId() { $this->assertNull($this->trackingEvents->getId()); }