/** * 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); } }
/** * 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; }
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)); }