示例#1
0
 /**
  * Schedule workflow auto start for entity.
  *
  * @param LifecycleEventArgs $args
  */
 protected function scheduleStartWorkflowForNewEntity(LifecycleEventArgs $args)
 {
     $entity = $args->getEntity();
     $activeWorkflow = $this->workflowManager->getApplicableWorkflow($entity);
     if ($activeWorkflow && $activeWorkflow->getStepManager()->hasStartStep()) {
         $this->entitiesScheduledForWorkflowStart[$this->deepLevel][] = array('entity' => $entity, 'workflow' => $activeWorkflow);
     }
 }
示例#2
0
 /**
  * Check that workflow has start step
  *
  * @param object $entity
  * @return bool
  */
 public function hasWorkflowStartStep($entity)
 {
     $workflow = $this->workflowManager->getApplicableWorkflow($entity);
     if ($workflow) {
         return $workflow->getDefinition()->getStartStep() !== null;
     }
     return false;
 }
示例#3
0
 public function testGetApplicableWorkflow()
 {
     $entity = new \DateTime('now');
     $entityClass = get_class($entity);
     $workflow = $this->createWorkflow(self::TEST_WORKFLOW_NAME);
     $this->doctrineHelper->expects($this->once())->method('getEntityClass')->with($entity)->will($this->returnValue($entityClass));
     $this->workflowRegistry->expects($this->once())->method('getActiveWorkflowByEntityClass')->with($entityClass)->will($this->returnValue($workflow));
     $this->assertEquals($workflow, $this->workflowManager->getApplicableWorkflow($entity));
 }