Refactoring Bpmn/Workflow handling layer (4th commit) - adding unit test for BpmnActivity class that is handling transparently its Bound object
This commit is contained in:
@@ -45,48 +45,19 @@ class BpmnActivity extends BaseBpmnActivity
|
||||
}
|
||||
}
|
||||
|
||||
// OVERRIDES
|
||||
|
||||
public function setActUid($actUid)
|
||||
public static function findOneBy($field, $value)
|
||||
{
|
||||
parent::setActUid($actUid);
|
||||
$this->bound->setElementUid($this->getActUid());
|
||||
$rows = self::findAllBy($field, $value);
|
||||
|
||||
return empty($rows) ? null : $rows[0];
|
||||
}
|
||||
|
||||
public function setPrjUid($prjUid)
|
||||
public static function findAllBy($field, $value)
|
||||
{
|
||||
parent::setPrjUid($prjUid);
|
||||
$this->bound->setPrjUid($this->getPrjUid());
|
||||
}
|
||||
$c = new Criteria('workflow');
|
||||
$c->add($field, $value, Criteria::EQUAL);
|
||||
|
||||
public function setProUid($proUid)
|
||||
{
|
||||
parent::setProUid($proUid);
|
||||
|
||||
$process = BpmnProcessPeer::retrieveByPK($this->getProUid());
|
||||
$this->bound->setDiaUid($process->getDiaUid());
|
||||
}
|
||||
|
||||
public function save($con = null)
|
||||
{
|
||||
parent::save($con);
|
||||
|
||||
$this->setBoundDefaults();
|
||||
$this->bound->save($con);
|
||||
}
|
||||
|
||||
public function delete($con = null)
|
||||
{
|
||||
// first, delete the related bound object
|
||||
if (! is_object($this->bound)) {
|
||||
$this->bound = BpmnBound::findByElement('Activity', $this->getActUid());
|
||||
}
|
||||
|
||||
if (is_object($this->bound)) {
|
||||
$this->bound->delete($con);
|
||||
}
|
||||
|
||||
parent::delete($con);
|
||||
return BpmnActivityPeer::doSelect($c);
|
||||
}
|
||||
|
||||
public static function getAll($prjUid = null, $start = null, $limit = null, $filter = '', $returnType = null, $changeCaseTo=CASE_UPPER)
|
||||
@@ -122,6 +93,55 @@ class BpmnActivity extends BaseBpmnActivity
|
||||
return $activities;
|
||||
}
|
||||
|
||||
// OVERRIDES
|
||||
|
||||
public function setActUid($actUid)
|
||||
{
|
||||
parent::setActUid($actUid);
|
||||
$this->bound->setElementUid($this->getActUid());
|
||||
}
|
||||
|
||||
public function setPrjUid($prjUid)
|
||||
{
|
||||
parent::setPrjUid($prjUid);
|
||||
$this->bound->setPrjUid($this->getPrjUid());
|
||||
}
|
||||
|
||||
public function setProUid($proUid)
|
||||
{
|
||||
parent::setProUid($proUid);
|
||||
|
||||
$process = BpmnProcessPeer::retrieveByPK($this->getProUid());
|
||||
$this->bound->setDiaUid($process->getDiaUid());
|
||||
}
|
||||
|
||||
public function save($con = null)
|
||||
{
|
||||
parent::save($con);
|
||||
|
||||
$this->setBoundDefaults();
|
||||
|
||||
if ($this->bound->getBouUid() == "") {
|
||||
$this->bound->setBouUid(\ProcessMaker\Util\Hash::generateUID());
|
||||
}
|
||||
|
||||
$this->bound->save($con);
|
||||
}
|
||||
|
||||
public function delete($con = null)
|
||||
{
|
||||
// first, delete the related bound object
|
||||
if (! is_object($this->bound) || $this->bound->getBouUid() == "") {
|
||||
$this->bound = BpmnBound::findByElement('Activity', $this->getActUid());
|
||||
}
|
||||
|
||||
if (is_object($this->bound)) {
|
||||
$this->bound->delete($con);
|
||||
}
|
||||
|
||||
parent::delete($con);
|
||||
}
|
||||
|
||||
public function fromArray($data, $type = BasePeer::TYPE_FIELDNAME)
|
||||
{
|
||||
parent::fromArray($data, $type);
|
||||
@@ -143,7 +163,7 @@ class BpmnActivity extends BaseBpmnActivity
|
||||
$data = parent::toArray($type);
|
||||
$bouUid = $this->bound->getBouUid();
|
||||
|
||||
if (empty($bouUid)) {
|
||||
if (! empty($bouUid)) {
|
||||
$bound = BpmnBound::findByElement('Activity', $this->getActUid());
|
||||
|
||||
if (is_object($bound)) {
|
||||
|
||||
@@ -17,16 +17,18 @@ require_once 'classes/model/om/BaseBpmnBound.php';
|
||||
class BpmnBound extends BaseBpmnBound
|
||||
{
|
||||
public static function findOneBy($field, $value)
|
||||
{
|
||||
$rows = self::findAllBy($field, $value);
|
||||
|
||||
return empty($rows) ? null : $rows[0];
|
||||
}
|
||||
|
||||
public static function findAllBy($field, $value)
|
||||
{
|
||||
$c = new Criteria('workflow');
|
||||
$c->add($field, $value, Criteria::EQUAL);
|
||||
|
||||
$c->add($field, $value, CRITERIA::EQUAL );
|
||||
|
||||
$rs = ContentPeer::doSelectRS($c);
|
||||
//$rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$rs->next();
|
||||
|
||||
return $rs->getRow();
|
||||
return BpmnBoundPeer::doSelect($c);
|
||||
}
|
||||
|
||||
public static function findByElement($type, $uid)
|
||||
|
||||
@@ -46,6 +46,8 @@ class BpmnProject //extends ProjectHandler
|
||||
*/
|
||||
protected $project;
|
||||
|
||||
protected $prjUid;
|
||||
|
||||
/**
|
||||
* @var \BpmnProcess
|
||||
*/
|
||||
@@ -56,36 +58,6 @@ class BpmnProject //extends ProjectHandler
|
||||
*/
|
||||
protected $diagram;
|
||||
|
||||
/**
|
||||
* @var array of \BpmnActivities objects
|
||||
*/
|
||||
protected $activities = array();
|
||||
|
||||
/**
|
||||
* @var array of \BpmnEvents objects
|
||||
*/
|
||||
protected $events = array();
|
||||
|
||||
/**
|
||||
* @var array on \BpmnFlow objects
|
||||
*/
|
||||
protected $flows = array();
|
||||
|
||||
/**
|
||||
* @var array of \BpmnArtifact objects
|
||||
*/
|
||||
protected $artifacts = array();
|
||||
|
||||
/**
|
||||
* @var array of \BpmnLaneset objects
|
||||
*/
|
||||
protected $laneset = array();
|
||||
|
||||
/**
|
||||
* @var array of \BpmnLanes objects
|
||||
*/
|
||||
protected $lanes = array();
|
||||
|
||||
|
||||
public function __construct($data = null)
|
||||
{
|
||||
@@ -96,8 +68,15 @@ class BpmnProject //extends ProjectHandler
|
||||
|
||||
public static function load($prjUid)
|
||||
{
|
||||
$project = ProjectPeer::retrieveByPK($prjUid);
|
||||
|
||||
if (! is_object($project)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$me = new BpmnProject();
|
||||
$me->project = ProjectPeer::retrieveByPK($prjUid);
|
||||
$me->project = $project;
|
||||
$me->prjUid = $me->project->getPrjUid();
|
||||
|
||||
return $me;
|
||||
}
|
||||
@@ -114,6 +93,31 @@ class BpmnProject //extends ProjectHandler
|
||||
$this->project->fromArray($data, BasePeer::TYPE_FIELDNAME);
|
||||
$this->project->setPrjCreateDate(date("Y-m-d H:i:s"));
|
||||
$this->project->save();
|
||||
|
||||
$this->prjUid = $this->project->getPrjUid();
|
||||
}
|
||||
|
||||
public function remove()
|
||||
{
|
||||
/*
|
||||
* 1. Remove Diagram related objects
|
||||
* 2. Remove Project related objects
|
||||
*/
|
||||
|
||||
$activities = $this->getActivities();
|
||||
|
||||
foreach ($activities as $activity) {
|
||||
$this->removeActivity($activity["ACT_UID"]);
|
||||
}
|
||||
|
||||
$process = ProcessPeer::retrieveByPK($this->getProcess("object")->getProUid());
|
||||
$process->delete();
|
||||
|
||||
$diagram = DiagramPeer::retrieveByPK($this->getDiagram("object")->getDiaUid());
|
||||
$diagram->delete();
|
||||
|
||||
$project = ProjectPeer::retrieveByPK($this->getUid());
|
||||
$project->delete();
|
||||
}
|
||||
|
||||
public function addDiagram($data = array())
|
||||
@@ -164,37 +168,29 @@ class BpmnProject //extends ProjectHandler
|
||||
$activity->setProUid($this->getProcess("object")->getProUid());
|
||||
$activity->save();
|
||||
|
||||
$this->activities[$activity->getActUid()] = $activity;
|
||||
return $activity->getActUid();
|
||||
}
|
||||
|
||||
public function getActivity($actUid)
|
||||
public function getActivity($actUid, $retType = 'array')
|
||||
{
|
||||
if (empty($this->activities) || ! array_key_exists($actUid, $this->activities)) {
|
||||
$activity = ActivityPeer::retrieveByPK($actUid);
|
||||
$activity = ActivityPeer::retrieveByPK($actUid);
|
||||
|
||||
if (! is_object($activity)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$this->activities[$actUid] = $activity;
|
||||
if ($retType != "object" && ! empty($activity)) {
|
||||
$activity = $activity->toArray();
|
||||
}
|
||||
|
||||
return $this->activities[$actUid];
|
||||
return $activity;
|
||||
}
|
||||
|
||||
public function getActivities()
|
||||
public function getActivities($retType = 'array')
|
||||
{
|
||||
if (empty($this->activities)) {
|
||||
$this->activities = Activity::getAll($this->project->getPrjUid(), null, null, '', 'object');
|
||||
}
|
||||
return Activity::getAll($this->getUid(), null, null, '', $retType);
|
||||
}
|
||||
|
||||
$activitiesList = array();
|
||||
|
||||
foreach ($this->activities as $activity) {
|
||||
$activitiesList[] = $activity->toArray();
|
||||
}
|
||||
|
||||
return $activitiesList;
|
||||
public function removeActivity($actUid)
|
||||
{
|
||||
$activity = ActivityPeer::retrieveByPK($actUid);
|
||||
$activity->delete();
|
||||
}
|
||||
|
||||
public function addEvent($data)
|
||||
@@ -226,19 +222,9 @@ class BpmnProject //extends ProjectHandler
|
||||
return $this->events[$evnUid];
|
||||
}
|
||||
|
||||
public function getEvents()
|
||||
public function getEvents($retType)
|
||||
{
|
||||
if (empty($this->events)) {
|
||||
$this->events = Activity::getAll($this->project->getPrjUid(), null, null, '', 'object');
|
||||
}
|
||||
|
||||
$eventsList = array();
|
||||
|
||||
foreach ($this->events as $event) {
|
||||
$eventsList[] = $event->toArray();
|
||||
}
|
||||
|
||||
return $eventsList;
|
||||
return Event::getAll($this->project->getPrjUid(), null, null, '', 'object');
|
||||
}
|
||||
|
||||
public function addGateway($data)
|
||||
@@ -270,19 +256,9 @@ class BpmnProject //extends ProjectHandler
|
||||
return $this->gateways[$gatUid];
|
||||
}
|
||||
|
||||
public function getGateways()
|
||||
public function getGateways($retType = 'array')
|
||||
{
|
||||
if (empty($this->gateways)) {
|
||||
$this->gateways = Activity::getAll($this->project->getPrjUid(), null, null, '', 'object');
|
||||
}
|
||||
|
||||
$gatewaysList = array();
|
||||
|
||||
foreach ($this->gateways as $gateway) {
|
||||
$gatewaysList[] = $gateway->toArray();
|
||||
}
|
||||
|
||||
return $gatewaysList;
|
||||
return Activity::getAll($this->project->getPrjUid(), null, null, '', $retType);
|
||||
}
|
||||
|
||||
public function addFlow($data)
|
||||
@@ -313,19 +289,9 @@ class BpmnProject //extends ProjectHandler
|
||||
return $this->flows[$floUid];
|
||||
}
|
||||
|
||||
public function getFlows()
|
||||
public function getFlows($retType = 'array')
|
||||
{
|
||||
if (empty($this->flows)) {
|
||||
$this->flows = Activity::getAll($this->project->getPrjUid(), null, null, '', 'object');
|
||||
}
|
||||
|
||||
$flowsList = array();
|
||||
|
||||
foreach ($this->flows as $flow) {
|
||||
$flowsList[] = $flow->toArray();
|
||||
}
|
||||
|
||||
return $flowsList;
|
||||
return Activity::getAll($this->project->getPrjUid(), null, null, '', $retType);
|
||||
}
|
||||
|
||||
public function addArtifact($data)
|
||||
@@ -383,7 +349,7 @@ class BpmnProject //extends ProjectHandler
|
||||
throw new \Exception("Error: There is not an initialized project.");
|
||||
}
|
||||
|
||||
return $this->project->getPrjUid();
|
||||
return $this->prjUid;
|
||||
}
|
||||
|
||||
public function getProject($retType = "array")
|
||||
|
||||
254
workflow/engine/src/Tests/Model/BpmnActivityTest.php
Normal file
254
workflow/engine/src/Tests/Model/BpmnActivityTest.php
Normal file
@@ -0,0 +1,254 @@
|
||||
<?php
|
||||
if (! class_exists("Propel")) {
|
||||
include_once __DIR__ . "/../bootstrap.php";
|
||||
}
|
||||
|
||||
use \BpmnActivity;
|
||||
|
||||
class BpmnActivityTest extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
protected static $prjUid = "00000000000000000000000000000001";
|
||||
protected static $diaUid = "18171550f1198ddc8642045664020352";
|
||||
protected static $proUid = "155064020352f1198ddc864204561817";
|
||||
|
||||
protected static $data1;
|
||||
protected static $data2;
|
||||
|
||||
public static function setUpBeforeClass()
|
||||
{
|
||||
$project = new \BpmnProject();
|
||||
$project->setPrjUid(self::$prjUid);
|
||||
$project->setPrjName("Dummy Project");
|
||||
$project->save();
|
||||
|
||||
$process = new \BpmnDiagram();
|
||||
$process->setDiaUid(self::$diaUid);
|
||||
$process->setPrjUid(self::$prjUid);
|
||||
$process->save();
|
||||
|
||||
$process = new \BpmnProcess();
|
||||
$process->setProUid(self::$proUid);
|
||||
$process->setPrjUid(self::$prjUid);
|
||||
$process->setDiaUid(self::$diaUid);
|
||||
$process->save();
|
||||
|
||||
self::$data1 = array(
|
||||
"ACT_UID" => "864215906402045618170352f1198ddc",
|
||||
"PRJ_UID" => self::$prjUid,
|
||||
"PRO_UID" => self::$proUid,
|
||||
"ACT_NAME" => "Activity #1",
|
||||
"BOU_X" => "51",
|
||||
"BOU_Y" => "52"
|
||||
);
|
||||
|
||||
self::$data2 = array(
|
||||
"ACT_UID" => "70352f1198ddc8642159064020456181",
|
||||
"PRJ_UID" => self::$prjUid,
|
||||
"PRO_UID" => self::$proUid,
|
||||
"ACT_NAME" => "Activity #2",
|
||||
"BOU_X" => "53",
|
||||
"BOU_Y" => "54"
|
||||
);
|
||||
}
|
||||
|
||||
public static function tearDownAfterClass()
|
||||
{
|
||||
$activities = BpmnActivity::findAllBy(BpmnActivityPeer::PRJ_UID, self::$prjUid);
|
||||
foreach ($activities as $activity) {
|
||||
$activity->delete();
|
||||
}
|
||||
|
||||
$bounds = BpmnBound::findAllBy(BpmnBoundPeer::PRJ_UID, self::$prjUid);
|
||||
foreach ($bounds as $bound) {
|
||||
$bound->delete();
|
||||
}
|
||||
|
||||
$process = BpmnProcessPeer::retrieveByPK(self::$proUid);
|
||||
$process->delete();
|
||||
|
||||
$diagram = BpmnDiagramPeer::retrieveByPK(self::$diaUid);
|
||||
$diagram->delete();
|
||||
|
||||
$project = BpmnProjectPeer::retrieveByPK(self::$prjUid);
|
||||
$project->delete();
|
||||
}
|
||||
|
||||
public function testNew()
|
||||
{
|
||||
$activity = new BpmnActivity();
|
||||
$activity->setActUid(self::$data1["ACT_UID"]);
|
||||
$activity->setPrjUid(self::$data1["PRJ_UID"]);
|
||||
$activity->setProUid(self::$data1["PRO_UID"]);
|
||||
$activity->setActName(self::$data1["ACT_NAME"]);
|
||||
$activity->getBound()->setBouX(self::$data1["BOU_X"]);
|
||||
$activity->getBound()->setBouY(self::$data1["BOU_Y"]);
|
||||
$activity->save();
|
||||
|
||||
$activity2 = BpmnActivityPeer::retrieveByPK($activity->getActUid());
|
||||
|
||||
$this->assertNotNull($activity2);
|
||||
|
||||
return $activity;
|
||||
}
|
||||
|
||||
public function testNewUsingFromArray()
|
||||
{
|
||||
$activity = new BpmnActivity();
|
||||
$activity->fromArray(self::$data2);
|
||||
|
||||
$activity->save();
|
||||
|
||||
$activity2 = BpmnActivityPeer::retrieveByPK($activity->getActUid());
|
||||
|
||||
$this->assertNotNull($activity2);
|
||||
|
||||
return $activity;
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testNew
|
||||
*/
|
||||
public function testToArrayFromTestNew($activity)
|
||||
{
|
||||
$expected = array(
|
||||
"ACT_UID" => self::$data1["ACT_UID"],
|
||||
"PRJ_UID" => self::$data1["PRJ_UID"],
|
||||
"PRO_UID" => self::$data1["PRO_UID"],
|
||||
"ACT_NAME" => self::$data1["ACT_NAME"],
|
||||
"ACT_TYPE" => "TASK",
|
||||
"ACT_IS_FOR_COMPENSATION" => "0",
|
||||
"ACT_START_QUANTITY" => "1",
|
||||
"ACT_COMPLETION_QUANTITY" => "1",
|
||||
"ACT_TASK_TYPE" => "EMPTY",
|
||||
"ACT_IMPLEMENTATION" => "",
|
||||
"ACT_INSTANTIATE" => "0",
|
||||
"ACT_SCRIPT_TYPE" => "",
|
||||
"ACT_SCRIPT" => "",
|
||||
"ACT_LOOP_TYPE" => "NONE",
|
||||
"ACT_TEST_BEFORE" => "0",
|
||||
"ACT_LOOP_MAXIMUM" => "0",
|
||||
"ACT_LOOP_CONDITION" => "",
|
||||
"ACT_LOOP_CARDINALITY" => "0",
|
||||
"ACT_LOOP_BEHAVIOR" => "NONE",
|
||||
"ACT_IS_ADHOC" => "0",
|
||||
"ACT_IS_COLLAPSED" => "1",
|
||||
"ACT_COMPLETION_CONDITION" => "",
|
||||
"ACT_ORDERING" => "PARALLEL",
|
||||
"ACT_CANCEL_REMAINING_INSTANCES" => "1",
|
||||
"ACT_PROTOCOL" => "",
|
||||
"ACT_METHOD" => "",
|
||||
"ACT_IS_GLOBAL" => "0",
|
||||
"ACT_REFERER" => "",
|
||||
"ACT_DEFAULT_FLOW" => "",
|
||||
"ACT_MASTER_DIAGRAM" => "",
|
||||
"DIA_UID" => "18171550f1198ddc8642045664020352",
|
||||
"ELEMENT_UID" => self::$data1["ACT_UID"],
|
||||
"BOU_ELEMENT" => "pm_canvas",
|
||||
"BOU_ELEMENT_TYPE" => "bpmnActivity",
|
||||
"BOU_X" => self::$data1["BOU_X"],
|
||||
"BOU_Y" => self::$data1["BOU_Y"],
|
||||
"BOU_WIDTH" => "0",
|
||||
"BOU_HEIGHT" => "0",
|
||||
"BOU_REL_POSITION" => "0",
|
||||
"BOU_SIZE_IDENTICAL" => "0",
|
||||
"BOU_CONTAINER" => "bpmnDiagram"
|
||||
);
|
||||
|
||||
$result = $activity->toArray();
|
||||
$bouUid = $result["BOU_UID"];
|
||||
|
||||
$this->assertNotEmpty($bouUid);
|
||||
$this->assertEquals(32, strlen($bouUid));
|
||||
|
||||
unset($result["BOU_UID"]);
|
||||
|
||||
$this->assertEquals($expected, $result);
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testNewUsingFromArray
|
||||
*/
|
||||
public function testToArrayFromTestNewUsingFromArray($activity)
|
||||
{
|
||||
$expected = array(
|
||||
"ACT_UID" => self::$data2["ACT_UID"],
|
||||
"PRJ_UID" => self::$data2["PRJ_UID"],
|
||||
"PRO_UID" => self::$data2["PRO_UID"],
|
||||
"ACT_NAME" => self::$data2["ACT_NAME"],
|
||||
"ACT_TYPE" => "TASK",
|
||||
"ACT_IS_FOR_COMPENSATION" => "0",
|
||||
"ACT_START_QUANTITY" => "1",
|
||||
"ACT_COMPLETION_QUANTITY" => "1",
|
||||
"ACT_TASK_TYPE" => "EMPTY",
|
||||
"ACT_IMPLEMENTATION" => "",
|
||||
"ACT_INSTANTIATE" => "0",
|
||||
"ACT_SCRIPT_TYPE" => "",
|
||||
"ACT_SCRIPT" => "",
|
||||
"ACT_LOOP_TYPE" => "NONE",
|
||||
"ACT_TEST_BEFORE" => "0",
|
||||
"ACT_LOOP_MAXIMUM" => "0",
|
||||
"ACT_LOOP_CONDITION" => "",
|
||||
"ACT_LOOP_CARDINALITY" => "0",
|
||||
"ACT_LOOP_BEHAVIOR" => "NONE",
|
||||
"ACT_IS_ADHOC" => "0",
|
||||
"ACT_IS_COLLAPSED" => "1",
|
||||
"ACT_COMPLETION_CONDITION" => "",
|
||||
"ACT_ORDERING" => "PARALLEL",
|
||||
"ACT_CANCEL_REMAINING_INSTANCES" => "1",
|
||||
"ACT_PROTOCOL" => "",
|
||||
"ACT_METHOD" => "",
|
||||
"ACT_IS_GLOBAL" => "0",
|
||||
"ACT_REFERER" => "",
|
||||
"ACT_DEFAULT_FLOW" => "",
|
||||
"ACT_MASTER_DIAGRAM" => "",
|
||||
"DIA_UID" => "18171550f1198ddc8642045664020352",
|
||||
"ELEMENT_UID" => self::$data2["ACT_UID"],
|
||||
"BOU_ELEMENT" => "pm_canvas",
|
||||
"BOU_ELEMENT_TYPE" => "bpmnActivity",
|
||||
"BOU_X" => self::$data2["BOU_X"],
|
||||
"BOU_Y" => self::$data2["BOU_Y"],
|
||||
"BOU_WIDTH" => "0",
|
||||
"BOU_HEIGHT" => "0",
|
||||
"BOU_REL_POSITION" => "0",
|
||||
"BOU_SIZE_IDENTICAL" => "0",
|
||||
"BOU_CONTAINER" => "bpmnDiagram"
|
||||
);
|
||||
|
||||
$result = $activity->toArray();
|
||||
$bouUid = $result["BOU_UID"];
|
||||
|
||||
$this->assertNotEmpty($bouUid);
|
||||
$this->assertEquals(32, strlen($bouUid));
|
||||
|
||||
unset($result["BOU_UID"]);
|
||||
|
||||
$this->assertEquals($expected, $result);
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testNew
|
||||
* @depends testNewUsingFromArray
|
||||
* @param $activity1 \BpmnActivity
|
||||
* @param $activity2 \BpmnActivity
|
||||
*/
|
||||
public function testDelete($activity1, $activity2)
|
||||
{
|
||||
$actUid = $activity1->getActUid();
|
||||
$activity = BpmnActivityPeer::retrieveByPK($actUid);
|
||||
$activity->delete();
|
||||
|
||||
$this->assertNull(BpmnActivityPeer::retrieveByPK($actUid));
|
||||
// the previous call must delete the bound object related to activity too.
|
||||
$this->assertNull(BpmnBound::findByElement("Activity", $actUid));
|
||||
|
||||
|
||||
$actUid = $activity2->getActUid();
|
||||
$activity = BpmnActivityPeer::retrieveByPK($actUid);
|
||||
$activity->delete();
|
||||
|
||||
$this->assertNull(BpmnActivityPeer::retrieveByPK($actUid));
|
||||
// the previous call must delete the bound object related to activity too.
|
||||
$this->assertNull(BpmnBound::findByElement("Activity", $actUid));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -43,8 +43,7 @@ class BpmnProjectTest extends PHPUnit_Framework_TestCase
|
||||
$bp->addDiagram($data);
|
||||
|
||||
// Load from DB
|
||||
$bpLoaded = BpmnProject::load($bp->getUid());
|
||||
$diagramData = $bpLoaded->getDiagram();
|
||||
$diagramData = $bp->getDiagram();
|
||||
|
||||
$this->assertEquals($data["DIA_NAME"], $diagramData["DIA_NAME"]);
|
||||
$this->assertEquals($bp->getUid(), $diagramData["PRJ_UID"]);
|
||||
@@ -66,9 +65,7 @@ class BpmnProjectTest extends PHPUnit_Framework_TestCase
|
||||
$bp->addProcess($data);
|
||||
|
||||
// Load from DB
|
||||
$bpLoaded = BpmnProject::load($bp->getUid());
|
||||
$processData = $bpLoaded->getProcess();
|
||||
|
||||
$processData = $bp->getProcess();
|
||||
|
||||
$this->assertEquals($data["PRO_NAME"], $processData["PRO_NAME"]);
|
||||
$this->assertEquals($bp->getUid(), $processData["PRJ_UID"]);
|
||||
@@ -87,15 +84,12 @@ class BpmnProjectTest extends PHPUnit_Framework_TestCase
|
||||
"BOU_Y" => "50"
|
||||
);
|
||||
|
||||
$processData = $bp->getProcess();
|
||||
|
||||
|
||||
// Save to DB
|
||||
$bp->addActivity($data);
|
||||
|
||||
// Load from DB
|
||||
$bpLoaded = BpmnProject::load($bp->getUid());
|
||||
$activities = $bpLoaded->getActivities();
|
||||
$processData = $bp->getProcess();
|
||||
$activities = $bp->getActivities();
|
||||
|
||||
$this->assertCount(1, $activities);
|
||||
|
||||
@@ -105,8 +99,138 @@ class BpmnProjectTest extends PHPUnit_Framework_TestCase
|
||||
$this->assertEquals($value, $activityData[$key]);
|
||||
}
|
||||
|
||||
$this->assertEquals($bpLoaded->getUid(), $activityData["PRJ_UID"]);
|
||||
$this->assertEquals($bp->getUid(), $activityData["PRJ_UID"]);
|
||||
$this->assertEquals($processData["PRO_UID"], $activityData["PRO_UID"]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testCreate
|
||||
* @param $bp \ProcessMaker\Project\BpmnProject
|
||||
* @return array
|
||||
*/
|
||||
public function testAddActivityWithUid($bp)
|
||||
{
|
||||
$actUid = "f1198ddc864204561817155064020352";
|
||||
|
||||
$data = array(
|
||||
"ACT_UID" => $actUid,
|
||||
"ACT_NAME" => "Activity #X",
|
||||
"BOU_X" => "50",
|
||||
"BOU_Y" => "50"
|
||||
);
|
||||
|
||||
// Save to DB
|
||||
$bp->addActivity($data);
|
||||
|
||||
// Load from DB
|
||||
$activities = $bp->getActivities();
|
||||
|
||||
$uids = array();
|
||||
|
||||
foreach ($activities as $activity) {
|
||||
array_push($uids, $activity["ACT_UID"]);
|
||||
}
|
||||
|
||||
$this->assertTrue(in_array($actUid, $uids));
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testCreate
|
||||
* @depends testAddActivityWithUid
|
||||
* @param $bp \ProcessMaker\Project\BpmnProject
|
||||
* @param $data
|
||||
*/
|
||||
public function testGetActivity($bp, $data)
|
||||
{
|
||||
// Load from DB
|
||||
$activityData = $bp->getActivity($data["ACT_UID"]);
|
||||
|
||||
// in data is set the determinated UID for activity created in previous step
|
||||
foreach ($data as $key => $value) {
|
||||
$this->assertEquals($value, $activityData[$key]);
|
||||
}
|
||||
|
||||
// Testing with an invalid uid
|
||||
$this->assertNull($bp->getActivity("INVALID-UID"));
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testCreate
|
||||
* @depends testAddActivityWithUid
|
||||
* @param $bp \ProcessMaker\Project\BpmnProject
|
||||
* @param $data
|
||||
*/
|
||||
public function testRemoveActivity($bp, $data)
|
||||
{
|
||||
$this->assertCount(2, $bp->getActivities());
|
||||
|
||||
$bp->removeActivity($data["ACT_UID"]);
|
||||
|
||||
$this->assertCount(1, $bp->getActivities());
|
||||
}
|
||||
|
||||
public function testGetActivities()
|
||||
{
|
||||
// Create a new BpmnProject and save to DB
|
||||
$bp = new BpmnProject(array(
|
||||
"PRJ_NAME" => "Test BPMN Project #2",
|
||||
"PRJ_DESCRIPTION" => "Description for - Test BPMN Project #1",
|
||||
"PRJ_AUTHOR" => "00000000000000000000000000000001"
|
||||
));
|
||||
$bp->addDiagram();
|
||||
$bp->addProcess();
|
||||
|
||||
$this->assertCount(0, $bp->getActivities());
|
||||
|
||||
// Save to DB
|
||||
$bp->addActivity(array(
|
||||
"ACT_NAME" => "Activity #2",
|
||||
"BOU_X" => "50",
|
||||
"BOU_Y" => "50"
|
||||
));
|
||||
|
||||
$bp->addActivity(array(
|
||||
"ACT_NAME" => "Activity #3",
|
||||
"BOU_X" => "50",
|
||||
"BOU_Y" => "50"
|
||||
));
|
||||
|
||||
$this->assertCount(2, $bp->getActivities());
|
||||
|
||||
return $bp;
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testGetActivities
|
||||
* @param $bp \ProcessMaker\Project\BpmnProject
|
||||
* @return null|\ProcessMaker\Project\BpmnProject
|
||||
*/
|
||||
public function testLoad($bp)
|
||||
{
|
||||
$prjUid = $bp->getUid();
|
||||
$bp2 = BpmnProject::load($prjUid);
|
||||
|
||||
$this->assertNotNull($bp2);
|
||||
$this->assertEquals($bp->getActivities(), $bp2->getActivities());
|
||||
$this->assertEquals($bp->getDiagram(), $bp2->getDiagram());
|
||||
$this->assertEquals($bp->getProcess(), $bp2->getProcess());
|
||||
|
||||
return $bp2;
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testLoad
|
||||
* @param $bp \ProcessMaker\Project\BpmnProject
|
||||
*/
|
||||
public function testRemove($bp)
|
||||
{
|
||||
$prjUid = $bp->getUid();
|
||||
|
||||
$bp->remove();
|
||||
|
||||
$this->assertNull(BpmnProject::load($prjUid));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -68,6 +68,7 @@ Bootstrap::LoadThirdParty("smarty/libs", "Smarty.class");
|
||||
Bootstrap::registerSystemClasses();
|
||||
|
||||
Bootstrap::registerDir('src', PATH_HOME . 'engine/src/');
|
||||
Bootstrap::registerDir('model', PATH_CORE . 'classes' . PATH_SEP . 'model');
|
||||
|
||||
$config = System::getSystemConfiguration();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user