/** * @param string $workflowName * @param array $attributes * @param array $steps * @param string|null $relatedEntity * @return Workflow */ protected function createWorkflow($workflowName, array $attributes = array(), array $steps = array(), $relatedEntity = null) { $entityConnector = $this->getMockBuilder('Oro\\Bundle\\WorkflowBundle\\Model\\EntityConnector')->disableOriginalConstructor()->getMock(); $aclManager = $this->getMockBuilder('Oro\\Bundle\\WorkflowBundle\\Acl\\AclManager')->disableOriginalConstructor()->getMock(); $workflow = new Workflow($entityConnector, $aclManager); $workflow->setName($workflowName); foreach ($attributes as $name => $attribute) { $workflow->getAttributeManager()->getAttributes()->set($name, $attribute); } $workflow->getStepManager()->setSteps($steps); $definition = new WorkflowDefinition(); $definition->setRelatedEntity($relatedEntity); $workflow->setDefinition($definition); return $workflow; }
/** * Ensure that all database entities in workflow are still in Doctrine Unit of Work * * @param Workflow $workflow * @return Workflow * @throws WorkflowNotFoundException */ protected function refreshWorkflow(Workflow $workflow) { $refreshedDefinition = $this->refreshWorkflowDefinition($workflow->getDefinition()); $workflow->setDefinition($refreshedDefinition); return $workflow; }