diff --git a/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php b/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php index 12f3fa9f0..e599871ef 100644 --- a/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php +++ b/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php @@ -17,12 +17,6 @@ class BpmnWorkflow extends Project\Bpmn */ protected $wp; - public function __construct() - { - $this->wp = new Project\Workflow(); - } - - /** * OVERRIDES */ @@ -62,8 +56,8 @@ class BpmnWorkflow extends Project\Bpmn $wpData["PRO_CREATE_USER"] = $data["PRJ_AUTHOR"]; } - $wp = new Project\Workflow(); - $wp->create($wpData); + $this->wp = new Project\Workflow(); + $this->wp->create($wpData); } catch (\Exception $e) { $prjUid = $this->getUid(); @@ -101,10 +95,9 @@ class BpmnWorkflow extends Project\Bpmn public function addActivity($data) { - parent::addActivity($data); - $taskData = array(); - $taskData["TAS_UID"] = $data["ACT_UID"]; + + $taskData["TAS_UID"] = parent::addActivity($data); if (array_key_exists("ACT_NAME", $data)) { $taskData["TAS_TITLE"] = $data["ACT_NAME"]; @@ -375,4 +368,9 @@ class BpmnWorkflow extends Project\Bpmn return null; } + public function remove() + { + parent::remove(); + $this->wp->remove(); + } } \ No newline at end of file diff --git a/workflow/engine/src/ProcessMaker/Project/Adapter/WorkflowBpmn.php b/workflow/engine/src/ProcessMaker/Project/Adapter/WorkflowBpmn.php index 6879106e1..1e058ba9c 100644 --- a/workflow/engine/src/ProcessMaker/Project/Adapter/WorkflowBpmn.php +++ b/workflow/engine/src/ProcessMaker/Project/Adapter/WorkflowBpmn.php @@ -12,10 +12,28 @@ use ProcessMaker\Util\Hash; */ class WorkflowBpmn extends Project\Workflow { + /** + * @var \ProcessMaker\Project\Bpmn + */ + protected $bp; + /** * OVERRIDES */ + public static function load($prjUid) + { + $parent = parent::load($prjUid); + + $me = new self(); + + $me->process = $parent->process; + $me->proUid = $parent->proUid; + $me->bp = Project\Bpmn::load($prjUid); + + return $me; + } + public function create($data) { try { @@ -57,4 +75,10 @@ class WorkflowBpmn extends Project\Workflow )); } } + + public function remove() + { + parent::remove(); + $this->bp->remove(); + } } \ No newline at end of file diff --git a/workflow/engine/src/Tests/ProcessMaker/Project/Adapter/BpmnWorkflowTest.php b/workflow/engine/src/Tests/ProcessMaker/Project/Adapter/BpmnWorkflowTest.php index 309c6c5ab..2a00fb174 100644 --- a/workflow/engine/src/Tests/ProcessMaker/Project/Adapter/BpmnWorkflowTest.php +++ b/workflow/engine/src/Tests/ProcessMaker/Project/Adapter/BpmnWorkflowTest.php @@ -15,6 +15,17 @@ if (! class_exists("Propel")) { */ class BpmnWorkflowTest extends \PHPUnit_Framework_TestCase { + protected static $uids = array(); + + public static function tearDownAfterClass() + { + //cleaning DB + foreach (self::$uids as $prjUid) { + $bwap = Project\Adapter\BpmnWorkflow::load($prjUid); + $bwap->remove(); + } + } + function testNew() { $data = array( @@ -27,14 +38,20 @@ class BpmnWorkflowTest extends \PHPUnit_Framework_TestCase try { $bp = Project\Bpmn::load($bwap->getUid()); - } catch (\Exception $e){} + } catch (\Exception $e){ + $bp = null; + } try { $wp = Project\Workflow::load($bwap->getUid()); - } catch (\Exception $e){} + } catch (\Exception $e){ + $wp = null; + } - $this->assertNotEmpty($bp); - $this->assertNotEmpty($wp); + self::$uids[] = $bwap->getUid(); + + $this->assertNotNull($bp); + $this->assertNotNull($wp); $this->assertEquals($bp->getUid(), $wp->getUid()); $project = $bp->getProject(); @@ -58,11 +75,17 @@ class BpmnWorkflowTest extends \PHPUnit_Framework_TestCase try { $bp = Project\Bpmn::load($bwap->getUid()); - } catch (\Exception $e){} + } catch (\Exception $e){ + $bp = null; + } try { $wp = Project\Workflow::load($bwap->getUid()); - } catch (\Exception $e){} + } catch (\Exception $e){ + $wp = null; + } + + self::$uids[] = $bwap->getUid(); $this->assertNotEmpty($bp); $this->assertNotEmpty($wp); diff --git a/workflow/engine/src/Tests/ProcessMaker/Project/Adapter/WorkflowBpmnTest.php b/workflow/engine/src/Tests/ProcessMaker/Project/Adapter/WorkflowBpmnTest.php index 1053e3dec..5af5a80db 100644 --- a/workflow/engine/src/Tests/ProcessMaker/Project/Adapter/WorkflowBpmnTest.php +++ b/workflow/engine/src/Tests/ProcessMaker/Project/Adapter/WorkflowBpmnTest.php @@ -15,6 +15,17 @@ if (! class_exists("Propel")) { */ class WorkflowBpmnTest extends \PHPUnit_Framework_TestCase { + protected static $uids = array(); + + public static function tearDownAfterClass() + { + //cleaning DB + foreach (self::$uids as $prjUid) { + $wbpa = Project\Adapter\WorkflowBpmn::load($prjUid); + $wbpa->remove(); + } + } + function testNew() { $data = array( @@ -33,6 +44,8 @@ class WorkflowBpmnTest extends \PHPUnit_Framework_TestCase $wp = Project\Workflow::load($wbap->getUid()); } catch (\Exception $e){} + self::$uids[] = $wbap->getUid(); + $this->assertNotNull($bp); $this->assertNotNull($wp); $this->assertEquals($bp->getUid(), $wp->getUid()); @@ -63,6 +76,8 @@ class WorkflowBpmnTest extends \PHPUnit_Framework_TestCase $wp = Project\Workflow::load($wbap->getUid()); } catch (\Exception $e){} + self::$uids[] = $wbap->getUid(); + $this->assertNotEmpty($bp); $this->assertNotEmpty($wp); $this->assertEquals($bp->getUid(), $wp->getUid());