* Adjust unit test.

This commit is contained in:
wangyidong
2023-12-29 10:12:05 +08:00
parent 7684fc3c7d
commit 955b0cb133
25 changed files with 294 additions and 263 deletions
@@ -1,26 +1,21 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/programplan.class.php';
su('admin');
function initData()
{
zdTable('project')->config('checkleafstage')->gen(5);
}
/**
title=测试programplanModel->checkLeafStage();
cid=1
pid=1
cid=0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/programplan.class.php';
su('admin');
initData();
zdTable('project')->config('checkleafstage')->gen(5);
global $tester;
$tester->loadModel('programplan');
r($tester->programplan->checkLeafStage($stageID = 0)) && p('') && e('0'); // 获取阶段ID为0,判断是是否为叶子节点,结果为0
r($tester->programplan->checkLeafStage($stageID = 2)) && p('') && e('0'); // 获取阶段ID为2,判断是是否为叶子节点,结果为0
r($tester->programplan->checkLeafStage($stageID = 5)) && p('') && e('1'); // 获取阶段ID为5,判断是否为叶子节点,结果为1
@@ -1,23 +1,22 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/programplan.class.php';
zdTable('project')->config('project')->gen(13);
zdTable('task')->config('task')->gen(13);
su('admin');
/**
title=测试 programplanModel->computeProgress();
timeout=0
cid=1
cid=0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/programplan.class.php';
su('admin');
zdTable('project')->config('project')->gen(13);
zdTable('task')->config('task')->gen(13);
$programplan = new programplanTest();
r($programplan->computeProgressTest('2', 'edit', false)) && p() && e('success'); // 测试参数=项目id直接continue
r($programplan->computeProgressTest('1', 'edit', false)) && p() && e('fail'); // 测试参数=项目id直接continue
r($programplan->computeProgressTest('2', 'edit', true)) && p() && e('success'); // 测试阶段status=suspended子阶段status=wait
r($programplan->getByIdTest(2)) && p('status') && e('wait'); // 测试阶段status:suspended=>wait
r($programplan->computeProgressTest('5', 'edit', true)) && p() && e('success'); // 测试阶段status=suspended子阶段status=closed
+15 -10
View File
@@ -11,24 +11,29 @@ include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/programplan.class.php';
su('admin');
zdTable('project')->gen(10);
$project = zdTable('project');
$project->type->range('project');
$project->gen(10);
zdTable('task')->gen(10);
$names = array('阶段31', '阶段121', '阶段211', '阶段301', '阶段391', '阶段481', '阶段571', '新增的阶段', '', '', '', '');
$percents = array('0', '0', '0', '0', '0', '0', '0', '0', '', '', '', '');
$names = array('新阶段31', '新阶段121', '阶段211', '新增的阶段');
$parent = array('2', '2', '2', '2');
$begin = array();
$end = array();
$idList = array(11, 12);
$create = array('name' => $names, 'percent' => $percents, 'begin' => $begin, 'end' => $end, 'id' => $idList);
$create = array('name' => $names, 'parent' => $parent, 'begin' => $begin, 'end' => $end, 'id' => $idList);
$programplan = new programplanTest();
$programplan->objectModel->create(array());
r(dao::getError()) && p('message:0') && e('『阶段名称』不能为空。'); // 测试创建用例 工作量占比非数字
r(dao::getError()) && p('message:0') && e('『阶段名称』不能为空。'); // 传入空数据
r($programplan->createTest(array(), 0, 0, 1000)) && p('message:0') && e('『阶段名称』不能为空。'); // 测试创建用例 工作量占比非数字
exit;
r($programplan->createTest(array(), 0, 0, 101)) && p('message:0') && e('已分解任务,不可添加子阶段'); // 阶段已经分解了任务
r($programplan->createTest()) && p() && e('7'); // 测试正常更新阶段信息 获取阶段数量
r($programplan->createTest($create)) && p() && e('8'); // 测试正常创建一条阶段信息 获取阶段数量
$plans1 = $programplan->createTest();
r(count($plans1)) && p() && e('7'); // 测试正常更新阶段信息 获取阶段数量
r($plans1) && p('0:name;1:name') && e('阶段31,阶段121'); // 测试正常更新阶段信息 检查数据信息
$plans2 = $programplan->createTest($create);
r(count($plans2)) && p() && e('4'); // 测试正常更新阶段信息 获取阶段数量
r($plans2) && p('0:name;1:name;3:name') && e('新阶段31,新阶段121,新增的阶段'); // 测试正常更新阶段信息 获取数据信息
@@ -1,29 +0,0 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/programplan.class.php';
su('admin');
zdTable('project')->config('project')->gen(8);
/**
title=测试 programplanModel->getByList();
cid=1
pid=1
*/
$planIDList = array(array(2), array(3, 4), array(5, 6, 7), array(10000));
$programplan = new programplanTest();
$result = $programplan->getByListTest($planIDList[0]);
$result2 = $programplan->getByListTest($planIDList[1]);
$result3 = $programplan->getByListTest($planIDList[2]);
$result4 = $programplan->getByListTest($planIDList[3]);
r($result[2]) && p('name') && e('瀑布项目2'); // 测试获取项目2的名称
r($result[2]) && p('status') && e('doing'); // 测试获取项目2的状态
r(count($result2)) && p() && e('2'); // 测试获取项目3 4的取出的数量
r($result3[5]) && p('name,desc') && e('瀑布项目5,项目描述5'); // 测试获取项目5的名称和描述信息
r(count($result3)) && p() && e('3'); // 测试获取5 6 7 项目数量
r($result4) && p() && e('0'); // 测试获取不存在的项目信息
@@ -1,5 +1,12 @@
#!/usr/bin/env php
<?php
/**
title=测试 programplanModel->getParentChildrenTypes();
cid=0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/programplan.class.php';
su('admin');
@@ -11,14 +18,6 @@ $programplan->type->range('stage{3},sprint{2},kanban{2},stage{1},sprint{2}');
$programplan->deleted->range('0-1');
$programplan->gen(10);
/**
title=测试 programplanModel->getParentChildrenTypes();
cid=1
pid=1
*/
$parentIDList = array(1, 2, 3, 4);
$programplan = new programplanTest();
@@ -1,23 +1,22 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . '/test/lib/init.php';
zdTable('project')->config('project')->gen(10);
zdTable('projectproduct')->config('projectproduct')->gen(10);
zdTable('task')->gen(0);
su('admin');
/**
title=测试 programplanModel->getParentStageList();
cid=1
pid=1
cid=0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
su('admin');
zdTable('project')->config('project')->gen(10);
zdTable('projectproduct')->config('projectproduct')->gen(10);
global $tester;
$tester->loadModel('programplan');
$tester->programplan->app->user->admin = true;
r($tester->programplan->getParentStageList(1, 10, 2)[2]) && p() && e('执行1-1'); // 测试查询项目1产品2阶段10父阶段信息
r($tester->programplan->getParentStageList(1, 10, 3)[3]) && p() && e('执行1-1-1'); // 测试查询项目1产品3阶段10父阶段信息
r($tester->programplan->getParentStageList(4, 10, 6)[6]) && p() && e('执行2-1-1'); // 测试查询项目4产品6阶段10父阶段信息
r($tester->programplan->getParentStageList(1, 8, 2)[2]) && p() && e('执行1-1'); // 测试查询项目1产品2阶段8父阶段信息
r($tester->programplan->getParentStageList(1, 8, 3)[0]) && p() && e('无'); // 测试查询项目1产品3阶段8父阶段信息
r($tester->programplan->getParentStageList(4, 8, 6)[6]) && p() && e('执行2-1-1'); // 测试查询项目4产品6阶段8父阶段信息
@@ -1,25 +1,20 @@
#!/usr/bin/env php
<?php
declare(strict_types=1);
/**
title=测试programplanModel->getSelfAndChildrenList();
cid=0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/programplan.class.php';
su('admin');
zdTable('project')->config('getselfandchildrenlist')->gen(6);
/**
title=测试programplanModel->getSelfAndChildrenList();
cid=1
pid=1
测试id为2时获取自己的状态 >> doing
测试id为2时获取自己某一个后代的状态 >> 2
*/
$plan = new programplanTest();
$topPlan = $plan->getSelfAndChildrenListTest(2);
$plan = new programplanTest();
$topPlan = $plan->getSelfAndChildrenListTest(2);
$topPlanCount = count($topPlan[2]);
@@ -1,18 +1,16 @@
#!/usr/bin/env php
<?php
declare(strict_types=1);
/**
title=测试programplanModel->getSiblings();
cid=0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/programplan.class.php';
su('admin');
/**
title=测试programplanModel->getSiblings();
cid=1
pid=0
*/
zdTable('project')->config('getsiblings')->gen(5);
$plan = new programplanTest();
@@ -1,6 +1,11 @@
#!/usr/bin/env php
<?php
declare(strict_types=1);
/**
title=测试 programplanModel->getStageAttribute();
cid=0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/programplan.class.php';
@@ -8,17 +13,10 @@ su('admin');
zdTable('project')->config('project')->gen(5);
/**
title=测试 programplanModel->getStageAttribute();
cid=1
pid=1
*/
global $tester;
$tester->loadModel('programplan');
r($tester->programplan->getStageAttribute(0)) && p() && e('0'); // 验证id为0的阶段属性
r($tester->programplan->getStageAttribute(2)) && p() && e('review'); // 验证id为2的阶段属性
r($tester->programplan->getStageAttribute(3)) && p() && e('release'); // 验证id为3的阶段属性
r($tester->programplan->getStageAttribute(100)) && p() && e('0'); // 验证不存在的id 100 阶段属性
+10 -16
View File
@@ -1,27 +1,21 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . '/test/lib/init.php';
su('admin');
function initData()
{
zdTable('project')->config('project')->gen(5);
zdTable('project')->config('stage')->gen(5, $isClear = false);
$task = zdTable('task');
$task->execution->range('1-10');
$task->gen(10);
}
/**
title=测试 programplanModel::isClickable();
cid=1
pid=1
cid=0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
su('admin');
initData();
zdTable('project')->config('project')->gen(5);
zdTable('project')->config('stage')->gen(5, $isClear = false);
$task = zdTable('task');
$task->execution->range('1-10');
$task->gen(10);
global $tester;
$programplan = $tester->loadModel('programplan');
@@ -31,4 +25,4 @@ $stage = $programplan->getByID(6);
r($programplan::isClickable($emptyStage, $action = 'close')) && p() && e('1'); // 判断阶段为空时,是否有关闭的点击操作权限
r($programplan::isClickable($emptyStage, $action = 'create')) && p() && e('1'); // 判断阶段为空时,是否有创建的点击操作权限
r($programplan::isClickable($stage, $action = 'close')) && p() && e('1'); // 判断阶段不为空时,是否有关闭的点击操作权限
r($programplan::isClickable($stage, $action = 'create')) && p() && e('0'); // 判断阶段不为空并且该阶段下有任务,是否有创建的点击操作权限
r($programplan::isClickable($stage, $action = 'create')) && p() && e('0'); // 判断阶段不为空并且该阶段下有任务,是否有创建的点击操作权限
+12 -16
View File
@@ -1,28 +1,24 @@
#!/usr/bin/env php
<?php
/**
title=测试 programplanModel->isCreateTask();
cid=0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/programplan.class.php';
su('admin');
function initData()
{
zdTable('project')->config('project')->gen(5);
zdTable('project')->config('stage')->gen(5, $isClear = false);
zdTable('project')->config('project')->gen(5);
zdTable('project')->config('stage')->gen(5, $isClear = false);
$task = zdTable('task');
$task->execution->range('1-5');
$task->gen(10);
}
/**
title=测试 programplanModel->isCreateTask();
cid=1
pid=1
*/
$task = zdTable('task');
$task->execution->range('1-5');
$task->gen(10);
$programplan = new programplanTest();
r($programplan->isCreateTaskTest(-1)) && p() && e('1'); // 测试 id 为 -1 的阶段下是否创建了任务,结果为 1
r($programplan->isCreateTaskTest(0)) && p() && e('1'); // 测试 id 为 0 的阶段下是否创建了任务,结果为 1
r($programplan->isCreateTaskTest(1)) && p() && e('0'); // 测试 id 为 1 的阶段下是否创建了任务,结果为 0
r($programplan->isCreateTaskTest(6)) && p() && e('0'); // 测试 id 为 6 的阶段下是否创建了任务,结果为 0
r($programplan->isCreateTaskTest(6)) && p() && e('1'); // 测试 id 为 6 的阶段下是否创建了任务,结果为 0
+7 -9
View File
@@ -1,6 +1,12 @@
#!/usr/bin/env php
<?php
declare(strict_types=1);
/**
title=测试programplanModel->isTopStage();
cid=0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/programplan.class.php';
@@ -10,14 +16,6 @@ su('admin');
zdTable('project')->config('istopstage')->gen(5);
/**
title=测试programplanModel->isTopStage();
cid=1
pid=1
*/
$plan = new programplanTest();
r($plan->isTopStageTest(2)) && p('') && e('1'); // 测试id为2判断是否为顶级阶段
+4 -11
View File
@@ -1,23 +1,16 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . '/test/lib/init.php';
su('admin');
function initData()
{
zdTable('project')->config('project')->gen(10);
}
/**
title=测试 programplanModel->setTreePath();
cid=1
pid=1
cid=0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
su('admin');
initData();
zdTable('project')->config('project')->gen(10);
global $tester;
$tester->loadModel('programplan');
+28
View File
@@ -0,0 +1,28 @@
#!/usr/bin/env php
<?php
/**
title=测试 programplanModel->update();
cid=0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/programplan.class.php';
su('admin');
zdTable('project')->config('project')->gen(10);
$planID = 8;
$projectID = 1;
$changeName = array('name' => '修改后的阶段');
$programplan = new programplanTest();
r($programplan->objectModel->update(0, 0, null)) && p() && e('0'); // 传入空参数
$plan = $programplan->updateTest($planID, $projectID, $changeName);
$childPlans = $programplan->objectModel->dao->select('*')->from(TABLE_PROJECT)->where('parent')->eq($planID)->fetchAll();
r((array)$plan) && p('name') && e('修改后的阶段'); // 测试修改plan的 name 值
r($childPlans) && p('0:acl') && e('private'); // 测试子阶段的 acl 值
@@ -1,23 +1,17 @@
#!/usr/bin/env php
<?php
/**
title=测试programplanModel->updateSubStageAttr();
cid=0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/programplan.class.php';
su('admin');
function initData()
{
zdTable('project')->config('project')->gen(5);
}
/**
title=测试programplanModel->updateSubStageAttr();
cid=1
pid=1
*/
initData();
zdTable('project')->config('project')->gen(5);
$plan = new programplanTest();
r($plan->updateSubStageAttrTest(1, 'mix')) && p() && e('1'); // 测试更改 id 为 3 存在子阶段的阶段,attribute 更新值为 mix ,结果为 1
@@ -5,7 +5,7 @@ fields:
- field: id
range: 1-20
- field: project
range: 0, 1, 1, 0, 4, 4, 0, 7, 7, 0, 10, 10, 10
range: 0, 1, 1, 0, 4, 4, 0, 1, 1, 0, 10, 10, 10
- field: model
range: 'waterfall, , ,waterfall, , ,waterfall, , ,waterfall, , , ,'
- field: type
@@ -13,7 +13,7 @@ fields:
- field: status
range: 'suspended,suspended,wait,suspended,suspended,closed,doing,doing,suspended,wait,wait,wait,wait'
- field: parent
range: 0, 1, 2, 0, 4, 5, 0, 7, 8, 0, 10, 11, 11
range: 0, 1, 2, 0, 4, 5, 0, 2, 2, 0, 10, 11, 11
- field: path
range: '`,1,`, `,1,2,`, `,1,2,3`, `,4,`, `,4,5,`, `,4,5,6,`, `,7,`, `,7,8,`, `,7,8,9,`, `,10,`, `,10,11,`, `,10,11,12,`, `,10,11,13,`'
- field: hasProduct
+45 -19
View File
@@ -230,8 +230,8 @@ class programplanTest
if(dao::isError()) return dao::getError();
$objects = $tester->dao->select('*')->from(TABLE_PROJECT)->where('parent')->eq($plans[0]->parent)->andWhere('type')->eq('stage')->fetchAll();
return count($objects);
$objects = $this->objectModel->dao->select('*')->from(TABLE_PROJECT)->where('parent')->eq($plans[0]->parent)->andWhere('type')->eq('stage')->fetchAll();
return $objects;
}
/**
@@ -257,34 +257,60 @@ class programplanTest
* @param int $planID
* @param int $projectID
* @param array $param
* @param string $index
* @access public
* @return array
*/
public function updateTest($planID, $projectID, $param = array(), $index = '')
public function updateTest($planID, $projectID, $param = array())
{
$plan = $this->objectModel->getByID($planID);
$_POST['parent'] = $plan->parent;
$_POST['name'] = $plan->name;
$_POST['percent'] = $plan->percent;
$_POST['attribute'] = $plan->attribute;
$_POST['milestone'] = $plan->milestone;
$_POST['acl'] = $plan->acl;
$_POST['begin'] = $plan->begin;
$_POST['end'] = $plan->end;
$_POST['realBegan'] = $plan->realBegan;
$_POST['realEnd'] = $plan->realEnd;
$newPlan = new stdclass();
$newPlan->parent = $plan->parent;
$newPlan->name = $plan->name;
$newPlan->percent = $plan->percent;
$newPlan->attribute = $plan->attribute;
$newPlan->milestone = $plan->milestone;
$newPlan->acl = $plan->acl;
$newPlan->begin = $plan->begin;
$newPlan->end = $plan->end;
foreach($param as $key => $value) $_POST[$key] = $value;
foreach($param as $key => $value) $newPlan->{$key} = $value;
$objects = $this->objectModel->update($planID, $projectID);
$this->objectModel->update($planID, $projectID, $newPlan);
unset($_POST);
if(dao::isError()) return dao::getError();
return $this->objectModel->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($planID)->fetch();
}
if(dao::isError()) return $index == 'end' ? preg_replace('/『\d{4}-\d{2}-\d{2}』/', '', dao::getError()[$index][0]) : dao::getError()[$index][0];
/**
* Test updateRow method.
*
* @param int $planID
* @param int $projectID
* @param array $param
* @access public
* @return array|object
*/
public function updateRowTest($planID, $projectID, $param = array()): array|object
{
$plan = $this->objectModel->getByID($planID);
return $objects;
$newPlan = new stdclass();
$newPlan->parent = $plan->parent;
$newPlan->name = $plan->name;
$newPlan->percent = $plan->percent;
$newPlan->attribute = $plan->attribute;
$newPlan->milestone = $plan->milestone;
$newPlan->acl = $plan->acl;
$newPlan->begin = $plan->begin;
$newPlan->end = $plan->end;
foreach($param as $key => $value) $newPlan->{$key} = $value;
$this->objectModel->updateRow($planID, $projectID, $newPlan);
if(dao::isError()) return dao::getError();
return $this->objectModel->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($planID)->fetch();
}
/**
@@ -1,42 +1,40 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/programplan.class.php';
zdTable('project')->config('project')->gen(13);
zdTable('task')->config('task')->gen(13);
su('admin');
/**
title=测试 programplanTao->computeNewParenAndAction();
timeout=0
cid=1
cid=0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/programplan.class.php';
su('admin');
zdTable('project')->config('project')->gen(13);
zdTable('task')->config('task')->gen(13);
global $tester;
$programplan = new programplanTest();
$tester->loadModel('programplan')->programplanTao;
$project = $programplan->getByIdTest(2);
$result = $tester->programplan->getNewParentAndAction(array('wait' => 1), $project, 0, 'edit', $project);
$parent1 = $result['newParent'];
$project1 = $programplan->getByIdTest(1);
$project = $programplan->getByIdTest(2);
$result = $tester->programplan->getNewParentAndAction(array('wait' => 1), $project, 0, 'edit', $project1);
$parent1 = $result['newParent'];
$project = $programplan->getByIdTest(5);
$result = $tester->programplan->getNewParentAndAction(array('closed' => 1), $project, 0, 'edit', $project);
$result = $tester->programplan->getNewParentAndAction(array('closed' => 1), $project, 0, 'edit', $project1);
$parent2 = $result['newParent'];
$project = $programplan->getByIdTest(8);
$result = $tester->programplan->getNewParentAndAction(array('suspended' => 1), $project, 0, 'edit', $project);
$result = $tester->programplan->getNewParentAndAction(array('suspended' => 1), $project, 0, 'edit', $project1);
$parent3 = $result['newParent'];
$project = $programplan->getByIdTest(11);
$result = $tester->programplan->getNewParentAndAction(array('wait' => 2, 'closed' => 1), $project, 0, 'edit', $project);
$result = $tester->programplan->getNewParentAndAction(array('wait' => 2, 'closed' => 1), $project, 0, 'edit', $project1);
$parent4 = $result['newParent'];
r($parent1) && p('status') && e('wait'); // 返回状态为wait
r($parent2) && p('status') && e('closed'); // 返回状态为closed
r($parent3) && p('status') && e('suspended'); // 返回状态为suspended
@@ -1,26 +1,21 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . '/test/lib/init.php';
su('admin');
function initData()
{
zdTable('project')->config('project')->gen(10);
zdTable('projectproduct')->config('projectproduct')->gen(10);
}
/**
title=测试 programplanTao->getParentStages();
cid=1
pid=1
cid=0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
su('admin');
initData();
zdTable('project')->config('project')->gen(10);
zdTable('projectproduct')->config('projectproduct')->gen(10);
global $tester;
$tester->loadModel('programplan')->programplanTao;
$tester->loadModel('programplan');
$tester->programplan->app->user->admin = true;
r($tester->programplan->getParentStages(1, 10, 2)[2]) && p() && e('执行1-1'); // 测试查询项目1产品2阶段10父阶段信息
r($tester->programplan->getParentStages(1, 10, 3)[3]) && p() && e('执行1-1-1'); // 测试查询项目1产品3阶段10父阶段信息