Ejemplo n.º 1
0
 /**
  * @param bool $hasLogger
  * @dataProvider debugDataProvider
  */
 public function testDebug($hasLogger)
 {
     $doctrineHelper = $this->getMockBuilder('Oro\\Bundle\\EntityBundle\\ORM\\DoctrineHelper')->disableOriginalConstructor()->getMock();
     $definitionName = 'test_definition';
     $definition = new ProcessDefinition();
     $definition->setName($definitionName);
     $triggerEvent = ProcessTrigger::EVENT_UPDATE;
     $trigger = new ProcessTrigger();
     $trigger->setEvent($triggerEvent)->setDefinition($definition);
     $entity = new \stdClass();
     $entityId = 1;
     $data = new ProcessData(array('data' => $entity));
     $message = 'Test debug message';
     $context = array('definition' => $definitionName, 'event' => $triggerEvent, 'entityId' => $entityId);
     if ($hasLogger) {
         $doctrineHelper->expects($this->once())->method('getSingleEntityIdentifier')->with($entity, false)->will($this->returnValue($entityId));
         $logger = $this->getMock('Psr\\Log\\LoggerInterface');
         $logger->expects($this->once())->method('debug')->with($message, $context);
     } else {
         $doctrineHelper->expects($this->never())->method('getSingleEntityIdentifier');
         $logger = null;
     }
     $processLogger = new ProcessLogger($doctrineHelper, $logger);
     $processLogger->debug($message, $trigger, $data);
 }
Ejemplo n.º 2
0
 /**
  * @param ProcessTrigger $processTrigger
  * @param ProcessData $processData
  * @throws InvalidParameterException
  */
 public function handleTrigger(ProcessTrigger $processTrigger, ProcessData $processData)
 {
     $this->eventDispatcher->dispatch(ProcessEvents::HANDLE_BEFORE, new ProcessHandleEvent($processTrigger, $processData));
     $process = $this->getProcess($processTrigger);
     $process->execute($processData);
     $this->logger->debug('Process executed', $processTrigger, $processData);
     $this->eventDispatcher->dispatch(ProcessEvents::HANDLE_AFTER, new ProcessHandleEvent($processTrigger, $processData));
 }
Ejemplo n.º 3
0
 /**
  * @param ProcessTrigger $processTrigger
  * @param ProcessData $processData
  * @throws InvalidParameterException
  */
 public function handleTrigger(ProcessTrigger $processTrigger, ProcessData $processData)
 {
     $this->eventDispatcher->dispatch(ProcessEvents::HANDLE_BEFORE, new ProcessHandleEvent($processTrigger, $processData));
     if (!$processData['data']) {
         throw new InvalidParameterException('Invalid process data. Entity can not be empty.');
     }
     $process = $this->getProcess($processTrigger);
     $process->execute($processData);
     $this->logger->debug('Process executed', $processTrigger, $processData);
     $this->eventDispatcher->dispatch(ProcessEvents::HANDLE_AFTER, new ProcessHandleEvent($processTrigger, $processData));
 }
Ejemplo n.º 4
0
 /**
  * @param ProcessTrigger $trigger
  * @param object $entity
  * @param mixed|null $old
  * @param mixed|null $new
  */
 protected function scheduleProcess(ProcessTrigger $trigger, $entity, $old = null, $new = null)
 {
     $entityClass = ClassUtils::getClass($entity);
     // important to set modified flag to true
     $data = new ProcessData();
     $data->set('data', $entity);
     if ($old || $new) {
         $data->set('old', $old)->set('new', $new);
     }
     if (!$this->schedulePolicy->isScheduleAllowed($trigger, $data)) {
         $this->logger->debug('Policy declined process scheduling', $trigger, $data);
         return;
     }
     $this->scheduledProcesses[$entityClass][] = array('trigger' => $trigger, 'data' => $data);
 }