Ejemplo n.º 1
0
 public function testCreateFromString_02()
 {
     $n = new SWNode('node1', 'w1');
     $this->assertEquals($n->getId(), 'node1');
     $this->assertEquals($n->getLabel(), $n->getId());
     $this->assertEquals($n->getWorkflowId(), 'w1');
 }
Ejemplo n.º 2
0
 /**
  * @param array $wf workflow definition
  * @param string $wfId workflow Id
  */
 private function _createWorkflow($wf, $wfId)
 {
     if (!is_array($wf) or empty($wfId)) {
         throw new SWException(Yii::t('simpleWorkflow', 'invalid argument'));
     }
     $wfDefinition = array();
     if (!isset($wf['initial'])) {
         throw new SWException(Yii::t('simpleWorkflow', 'missing initial status for workflow {workflow}', array('{workflow}' => $wfId)), SWException::SW_ERR_IN_WORKFLOW);
     }
     // load node list
     foreach ($wf['node'] as $rnode) {
         $node = new SWNode($rnode, $wfId);
         $wfDefinition[$node->getId()] = $node;
         if ($node->getId() == $wf['initial']) {
             $wfDefinition['swInitialNode'] = $node;
         }
     }
     // checks that initialnode is set
     if (!isset($wfDefinition['swInitialNode'])) {
         throw new SWException(Yii::t('simpleWorkflow', 'missing initial status for workflow {workflow}', array('{workflow}' => $wfId)), SWException::SW_ERR_IN_WORKFLOW);
     }
     return $wfDefinition;
 }
Ejemplo n.º 3
0
 public function testCreateFromString_06()
 {
     $n = new SWNode('node1_aaa', 'w1');
     $this->assertEquals($n->getId(), 'node1_aaa');
     $this->assertEquals($n->getWorkflowId(), 'w1');
     $n = new SWNode('workflow_test/node1_aaa');
     $this->assertEquals($n->getId(), 'node1_aaa');
     $this->assertEquals($n->getWorkflowId(), 'workflow_test');
 }
 /**
  * @param array $wf workflow definition
  * @param string $wfId workflow Id
  */
 private function _createWorkflow($wf, $wfId)
 {
     if (!is_array($wf) || empty($wfId)) {
         throw new SWException('invalid argument');
     }
     $wfDefinition = array();
     if (!isset($wf['initial'])) {
         throw new SWException('missing initial status for workflow : ' . $wfId, SWException::SW_ERR_IN_WORKFLOW);
     }
     // load node list
     $nodeIds = array();
     foreach ($wf['node'] as $rnode) {
         $node = new SWNode($rnode, $wfId);
         if (in_array($node->getId(), $nodeIds)) {
             throw new SWException('duplicate node id : ' . $node->getId(), SWException::SW_ERR_IN_WORKFLOW);
         } else {
             $nodeIds[] = $node->getId();
         }
         $wfDefinition[$node->getId()] = $node;
         if ($node->getId() == $wf['initial'] || $node->toString() == $wf['initial']) {
             $wfDefinition['swInitialNode'] = $node;
         }
     }
     // checks that initialnode is set
     if (!isset($wfDefinition['swInitialNode'])) {
         throw new SWException('missing initial status for workflow : ' . $wfId, SWException::SW_ERR_IN_WORKFLOW);
     }
     return $wfDefinition;
 }