315 lines
10 KiB
PHP
315 lines
10 KiB
PHP
<?php
|
|
if (! class_exists("Propel")) {
|
|
include_once __DIR__ . "/../bootstrap.php";
|
|
}
|
|
|
|
use \BpmnActivity;
|
|
|
|
/**
|
|
* Class BpmnActivityTest
|
|
*
|
|
* @author Erik Amaru Ortiz <aortiz.erik@gmail.com, erik@colosa.com>
|
|
*/
|
|
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
|
|
* @param $activity \BpmnActivity
|
|
*/
|
|
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" => self::$diaUid,
|
|
"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);
|
|
}
|
|
|
|
public function testToArray()
|
|
{
|
|
$activity = BpmnActivityPeer::retrieveByPK(self::$data1["ACT_UID"]);
|
|
|
|
$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();
|
|
|
|
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));
|
|
}
|
|
|
|
} |