Merge branch 'sprint/tsj_uinttest' into 'master'

Sprint/tsj uinttest

See merge request easycorp/zentaopms!6704
This commit is contained in:
王怡栋
2023-01-06 00:36:45 +00:00
28 changed files with 799 additions and 303 deletions
+255 -10
View File
@@ -15,6 +15,62 @@ class programTest
$this->program = $tester->loadModel('program');
}
/**
* Get pairs.
*
* @param bool $isQueryAll
* @param string $orderBy
* @access public
* @return array
*/
public function getPairsTest($isQueryAll = false, $orderBy = 'id_desc')
{
return $this->program->getPairs($isQueryAll, $orderBy);
}
/**
* Get pairs by id list.
*
* @param string $programIDList
* @access public
* @return array
*/
public function getPairsByListTest($programIDList = '')
{
return $this->program->getPairsByList($programIDList);
}
/**
* Get parent pairs.
*
* @param string $model
* @param string $mode
* @param bool $showRoot
* @access public
* @return array
*/
public function getParentPairsTest($model = '', $mode = 'noclosed', $showRoot = true)
{
return $this->program->getParentPairs($model, $mode, $showRoot);
}
/**
* Get the product associated with the program.
*
* @param int $programID
* @param string $mode
* @param string $status
* @param string|array $append
* @param int|string $shadow
* @param bool $withProgram
* @access public
* @return array
*/
public function getProductPairsTest($programID = 0, $mode = 'assign', $status = 'all', $append = '', $shadow = 0, $withProgram = false)
{
return $this->program->getProductPairs($programID, $mode, $status, $append, $shadow, $withProgram);
}
/**
* Test create program.
*
@@ -22,7 +78,7 @@ class programTest
* @access public
* @return object
*/
public function create($data)
public function createTest($data)
{
$_POST = $data;
@@ -30,21 +86,34 @@ class programTest
if(dao::isError()) return array('message' => dao::getError());
$program = $this->program->getById($programID);
$program = $this->program->getByID($programID);
return $program;
}
/**
* createStakeholder
* Get parent PM.
*
* @param int mixed $programID
* @param array $programIdList
* @access public
* @return array
*/
public function getParentPMTest($programIdList)
{
return $this->program->getParentPM($programIdList);
}
/**
* Create stakeholder.
*
* @param int $programID
* @param array $accounts
* @access public
* @return void
*/
public function createStakeholder($programID)
public function createStakeholderTest($programID, $accounts = array())
{
$_POST['accounts'] = array('dev1', 'dev2');
$_POST['accounts'] = $accounts;
$stakeHolder = $this->program->createStakeholder($programID);
return $this->program->getStakeholdersByPrograms($programID);
@@ -60,7 +129,7 @@ class programTest
{
$programID = $this->program->createDefaultProgram();
return $programID;
return $programID > 0;
}
/**
@@ -74,7 +143,7 @@ class programTest
* @access public
* @return void
*/
public function getList($status = 'all', $orderBy = 'id_asc', $pager = NULL, $type = '', $idList = '')
public function getListTest($status = 'all', $orderBy = 'id_asc', $pager = NULL, $type = '', $idList = '')
{
$this->program->cookie->showClosed = 'ture';
$programs = $this->program->getList($status, $orderBy, $pager, $type, $idList);
@@ -86,14 +155,14 @@ class programTest
/**
* update
* Test update program.
*
* @param mixed $proguamID
* @param mixed $data
* @access public
* @return void
*/
public function update($programID, $data)
public function updateTest($programID, $data)
{
$_POST = $data;
$this->program->update($programID);
@@ -116,4 +185,180 @@ class programTest
return $program;
}
/**
* Get budget left.
*
* @param int $programID
* @access public
* @return int
*/
public function getBudgetLeftTest($programID)
{
$program = $this->program->getByID($programID);
$budget = $this->program->getBudgetLeft($program);
if(dao::isError()) return array('message' => dao::getError());
return $budget;
}
/**
* Set tree path.
*
* @param int $programID
* @access public
* @return void
*/
public function setTreePathTest($programID)
{
$this->program->setTreePath($programID);
$program = $this->program->getByID($programID);
return $program;
}
/**
* Get children.
*
* @param int $programID
* @access public
* @return int
*/
public function getChildrenTest($programID)
{
return $this->program->getChildren($programID);
}
/**
* Check clickable.
*
* @param int $programID
* @param string $status
* @access public
* @return int
*/
public function isClickableTest($programID, $status)
{
return $this->program->isClickable($programID, $status);
}
/**
* Has unfinished.
*
* @param int $programID
* @access public
* @return int
*/
public function hasUnfinishedTest($programID)
{
$program = $this->program->getByID($programID);
return $this->program->hasUnfinished($program);
}
/*
* get involved programs.
*
* @param string $account
* @access public
* @return array
*/
public function getInvolvedProgramsTest($account)
{
return $this->program->getInvolvedPrograms($account);
}
/*
* Get Tree menu.
*
* @param string $programID
* @access public
* @return array
*/
public function getTreeMenuTest($programID)
{
return $this->program->getTreeMenu($programID);
}
/**
* Get top pairs.
*
* @param string $model
* @param string $mode
* @param bool $isQueryAll
* @access public
* @return array
*/
public function getTopPairsTest($model = '', $mode = '', $isQueryAll = false)
{
return $this->program->getTopPairs($model, $mode, $isQueryAll);
}
/**
* Get kanban group.
*
* @access public
* @return array
*/
public function getKanbanGroupTest()
{
return $this->program->getKanbanGroup();
}
/**
* Get team member pairs .
*
* @param int $programID
* @access public
* @return array
*/
public function getTeamMemberPairsTest($programID)
{
return $this->program->getTeamMemberPairs($programID);
}
/**
* Get project stats.
*
* @param int $programID
* @param string $browseType
* @param int $queryID
* @param string $orderBy
* @param object $pager
* @access public
* @return array
*/
public function getProjectStatsTest($programID = 0, $browseType = 'undone', $queryID = 0, $orderBy = 'id_desc', $pager = null)
{
return $this->program->getProjectStats($programID, $browseType, $queryID, $orderBy, $pager);
}
/**
* Get project list.
*
* @param int $programID
* @param string $browseType
* @param int $queryID
* @param string $orderBy
* @param int $pager
* @param int $programTitle
* @param int $involved
* @access public
* @return array
*/
public function getProjectListTest($programID = 0, $browseType = 'all', $queryID = 0, $orderBy = 'id_desc', $pager = null, $programTitle = 0, $involved = 0)
{
return $this->program->getProjectList($programID, $browseType, $queryID, $orderBy, $pager, $programTitle, $involved);
}
/**
* Get progress list.
*
* @access public
* @return array
*/
public function getProgressListTest()
{
return $this->program->getProgressList();
}
}
+1 -1
View File
@@ -4,7 +4,7 @@ INSERT INTO `zt_config` (`id`, `vision`, `owner`, `module`, `section`, `key`, `v
(2, 'rnd', 'system', 'common', '', 'CRProduct', '1'),
(3, 'rnd', 'system', 'common', '', 'CRExecution', '1'),
(4, 'rnd', 'system', 'custom', '', 'URSR', '2'),
(9, 'rnd', 'system', 'common', 'global', 'mode', 'new'),
(9, 'rnd', 'system', 'common', 'global', 'mode', 'ALM'),
(6, 'rnd', 'system', 'project', '', 'unitList', 'CNY,USD'),
(7, 'rnd', 'system', 'project', '', 'defaultCurrency', 'CNY'),
(8, 'rnd', 'system', 'story', '', 'reviewRules', 'allpass'),
+1 -1
View File
@@ -259,7 +259,7 @@ function zdImport($table, $yaml, $count = 10)
function su($account)
{
$userModel = new userModel();
$user = $userModel->identify($account, '123qwe!@#');
$user = $userModel->identify($account, '123Qwe!@#');
if($user) return $userModel->login($user);
return false;
}
+4 -4
View File
@@ -257,7 +257,7 @@ class yaml
* @access public
* @return void
*/
public function gen($rows, $version = '')
public function gen($rows, $version = '1.0')
{
$runFileDir = dirname(getcwd() . DS . $_SERVER['SCRIPT_FILENAME']);
$runFileName = str_replace(strrchr($_SERVER['SCRIPT_FILENAME'], "."), "", $_SERVER['SCRIPT_FILENAME']);
@@ -268,9 +268,9 @@ class yaml
$yamlDataArr = array();
$yamlDataArr['title'] = "zt_{$this->tableName}";
$yamlDataArr['author'] = "auto_{$runFileName}";
$version ? $yamlDataArr['version'] = $version : $yamlDataArr['version'] = '1.0';
$yamlDataArr['title'] = "zt_{$this->tableName}";
$yamlDataArr['author'] = "auto_{$runFileName}";
$yamlDataArr['version'] = $version;
if(empty($this->fields->fieldArr))
{
+21 -21
View File
@@ -2,30 +2,37 @@
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
$db->switchDB();
su('admin');
$program = zdTable('project');
$program->id->range('1');
$program->name->range('父项目集1');
$program->type->range('program');
$program->path->range('1')->prefix(',')->postfix(',');
$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->gen(1);
/**
title=测试 programModel::create();
cid=1
pid=1
创建新项目集 >> 测试新增项目集一
项目集名称为空时 >> 『项目集名称』不能为空。
项目集的开始时间为空 >> 『计划开始』不能为空。
项目集的完成时间为空 >> 『计划完成』不能为空。
项目集的计划完成时间大于计划开始时间 >> 『计划完成』应当大于『2022-01-12』。
项目集的完成日期大于父项目集的完成日期(需要实时更新日期) >> 父项目集的开始日期:2022-01-16,开始日期不能小于父项目集的开始日期
创建新项目集 >> 测试新增项目集一
项目集名称为空时 >> 『项目集名称』不能为空。
项目集的开始时间为空 >> 『计划开始』不能为空。
项目集的完成时间为空 >> 『计划完成』不能为空。
『计划完成』应当大于『2022-01-12』。 >> 『计划完成』应当大于『2022-01-12』。
*/
$program = new programTest();
$programTester = new programTest();
$data = array(
'parent' => 0,
'name' => '测试新增项目集一',
'budget' => '',
'budget' => '',
'budgetUnit' => 'CNY',
'begin' => '2022-01-12',
'end' => '2022-02-12',
@@ -48,15 +55,8 @@ $emptyEndProgram['end'] = '';
$beginGtEndProgram = $data;
$beginGtEndProgram['end'] = '2022-01-10';
$moreThanParent = $data;
$moreThanParent['parent'] = '1';
$moreThanParent['begin'] = '2018-01-01';
$moreThanParent['end'] = '2022-02-10';
r($program->create($normalProgram)) && p('name') && e('测试新增项目集一'); // 创建新项目集
r($program->create($emptyNameProgram)) && p('message[name]:0') && e('『项目集名称』不能为空。'); // 项目集名称为空时
r($program->create($emptyBeginProgram)) && p('message[begin]:0') && e('『计划开始』不能为空。'); // 项目集的开始时间为空
r($program->create($emptyEndProgram)) && p('message[end]:0') && e('『计划完成』不能为空。'); // 项目集的完成时间为空
r($program->create($beginGtEndProgram)) && p('message[end]:0') && e('『计划完成』应当大于『2022-01-12』。'); // 项目集的计划完成时间大于计划开始时间
r($program->create($moreThanParent)) && p('message:begin;message:end') && e('父项目集的开始日期:2022-01-16,开始日期不能小于父项目集的开始日期'); // 项目集的完成日期大于父项目集的完成日期(需要实时更新日期)
$db->restoreDB();
r($programTester->createTest($normalProgram)) && p('name') && e('测试新增项目集一'); // 创建新项目集
r($programTester->createTest($emptyNameProgram)) && p('message[name]:0') && e('『项目集名称』不能为空。'); // 项目集名称为空时
r($programTester->createTest($emptyBeginProgram)) && p('message[begin]:0') && e('『计划开始』不能为空。'); // 项目集的开始时间为空
r($programTester->createTest($emptyEndProgram)) && p('message[end]:0') && e('『计划完成』不能为空。'); // 项目集的完成时间为空
r($programTester->createTest($beginGtEndProgram)) && p('message[end]:0') && e('『计划完成』应当大于『2022-01-12』。'); // 『计划完成』应当大于『2022-01-12』。
+4 -7
View File
@@ -2,7 +2,6 @@
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
$db->switchDB();
/**
@@ -10,14 +9,12 @@ title=测试 programModel::createDefaultProgram();
cid=1
pid=1
创建默认项目集并返回ID >> 751
创建默认项目集 >> 1
*/
$test = new programTest();
$programTester = new programTest();
$result = $test->createDefaultProgramTest();
$result = $programTester->createDefaultProgramTest();
r($result) && p('') && e('751'); // 创建默认项目集并返回ID
$db->restoreDB();
r($result) && p('') && e('1'); // 创建默认项目集
+14 -9
View File
@@ -2,7 +2,15 @@
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
$db->switchDB();
$program = zdTable('project');
$program->id->range('1');
$program->name->range('父项目集1');
$program->type->range('program');
$program->path->range('1')->prefix(',')->postfix(',');
$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->gen(1);
/**
@@ -11,17 +19,14 @@ cid=1
pid=1
创建id=1的项目集的干系人并查看数量。 >> 2
创建id=1的项目集的干系人dev1,dev2并查看Account。 >> dev2;dev1
创建id=1的项目集的干系人dev1,dev2并查看Account。 >> dev1;dev2
*/
global $tester;
$tester->loadModel('program');
$programTester = new programTest();
$_POST['accounts'] = array('dev1', 'dev2');
$tester->program->createStakeholder(1);
$result = $tester->program->getStakeholdersByPrograms(1);
$accounts = array('dev1', 'dev2');
$result = $programTester->createStakeholderTest(1, $accounts);
r(count($result)) && p('') && e('2'); // 创建id=1的项目集的干系人并查看数量。
r($result) && p('0:account;1:account') && e('dev2;dev1'); // 创建id=1的项目集的干系人dev1,dev2并查看Account。
$db->restoreDB();
r($result) && p('0:account;1:account') && e('dev1;dev2'); // 创建id=1的项目集的干系人dev1,dev2并查看Account。
+18 -10
View File
@@ -1,25 +1,33 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
su('admin');
$program = zdTable('project');
$program->id->range('1,2');
$program->name->range('父项目集1,父项目集2');
$program->type->range('program');
$program->budget->range('900000,899900');
$program->path->range('1,2')->prefix(',')->postfix(',');
$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->gen(2);
/**
title=测试 programModel::getBudgetLeft();
cid=1
pid=1
查看项目11的所有父项目集的预算剩余 >> 900000
查看项目12的所有父项目集的预算剩余 >> 899900
查看项目集1的所有父项目集的预算剩余 >> 900000
查看项目集2的所有父项目集的预算剩余 >> 899900
*/
global $tester;
$tester->loadModel('program');
$program1 = $tester->program->getById(11);
$program2 = $tester->program->getById(12);
$result1 = $tester->program->getBudgetLeft($program1);
$result2 = $tester->program->getBudgetLeft($program2);
$programTester = new programTest();
$result1 = $programTester->getBudgetLeftTest(1);
$result2 = $programTester->getBudgetLeftTest(2);
r($result) && p() && e('900000'); // 查看项目11的所有父项目集的预算剩余
r($result) && p() && e('899900'); // 查看项目12的所有父项目集的预算剩余
r($result1) && p() && e('900000'); // 查看项目集1的所有父项目集的预算剩余
r($result2) && p() && e('899900'); // 查看项目集2的所有父项目集的预算剩余
-19
View File
@@ -1,19 +0,0 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
su('admin');
/**
title=测试 programModel::getBudgetUnitList();
cid=1
pid=1
获取货币类型列表 >> 人民币;美元
*/
global $tester;
$tester->loadModel('project');
r($tester->loadModel('program')->getBudgetUnitList()) && p('CNY;USD') && e('人民币;美元'); //获取货币类型列表
+15 -8
View File
@@ -1,23 +1,30 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
su('admin');
$program = zdTable('project');
$program->id->range('1-3');
$program->name->range('父项目集1,子项目集1,子项目集2');
$program->parent->range('0,1,1');
$program->grade->range('1,2,2');
$program->type->range('program');
$program->path->range('`,1,`,`,1,2,`,`,1,3,`');
$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->gen(3);
/**
title=测试 programModel:: getChildren();
cid=1
pid=1
通过id查找id=1的子项目集个数 >> 9
通过id查找id=22的子项目集个数 >> 7
通过id查找id=221的子项目集个数 >> 0
通过id查找id=1的子项目集个数 >> 2
*/
global $tester;
$tester->loadModel('program');
$programTester = new programTest();
r($tester->program->getChildren(1)) && p() && e('9'); // 通过id查找id=1的子项目集个数
r($tester->program->getChildren(22)) && p() && e('7'); // 通过id查找id=22的子项目集个数
r($tester->program->getChildren(221)) && p() && e('0'); // 通过id查找id=221的子项目集个数
r($programTester->getChildrenTest(1)) && p() && e('2'); // 通过id查找id=1的子项目集个数
+22 -11
View File
@@ -1,8 +1,20 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
su('admin');
$program = zdTable('project');
$program->id->range('1-3');
$program->name->range('1-3')->prefix('项目集');
$program->type->range('program');
$program->path->range('1-3')->prefix(',')->postfix(',');
$program->grade->range('1');
$program->openedBy->range('admin,test1');
$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->gen(3);
/**
title=测试 programModel::getInvolvedPrograms();
@@ -10,18 +22,17 @@ cid=1
pid=1
获取admin参与的项目集数量 >> 2
获取test2参与的项目集数量 >> 1
获取admin参与的项目集ID >> 10
获取test2参与的项目集ID >> 1
获取test1参与的项目集数量 >> 1
获取admin参与的项目集ID >> 1
获取test1参与的项目集ID >> 2
*/
global $tester;
$tester->loadModel('program');
$adminPrograms = $tester->program->getInvolvedPrograms('admin');
$test2Programs = $tester->program->getInvolvedPrograms('test2');
$programTester = new programTest();
$adminPrograms = $programTester->getInvolvedProgramsTest('admin');
$test1Programs = $programTester->getInvolvedProgramsTest('test1');
r(count($adminPrograms)) && p() && e('2'); // 获取admin参与的项目集数量
r(count($test2Programs)) && p() && e('1'); // 获取test2参与的项目集数量
r($adminPrograms) && p('10') && e('10'); // 获取admin参与的项目集ID
r($test2Programs) && p('1') && e('1'); // 获取test2参与的项目集ID
r(count($adminPrograms)) && p() && e('2'); // 获取admin参与的项目集数量
r(count($test1Programs)) && p() && e('1'); // 获取test1参与的项目集数量
r($adminPrograms) && p('1') && e('1'); // 获取admin参与的项目集ID
r($test1Programs) && p('2') && e('2'); // 获取test1参与的项目集ID
+18 -6
View File
@@ -1,8 +1,21 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
su('admin');
$program = zdTable('project');
$program->id->range('1-3');
$program->name->range('1-3')->prefix('项目集');
$program->type->range('program');
$program->path->range('1-3')->prefix(',')->postfix(',');
$program->grade->range('1');
$program->status->range('wait');
$program->openedBy->range('admin,test1');
$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->gen(3);
/**
title=测试 programModel::getKanbanGroup();
@@ -10,16 +23,15 @@ cid=1
pid=1
查看当前用户负责的项目集看板数量 >> 2
查看当前用户其他的项目集看板数量 >> 8
查看当前用户其他的项目集看板数量 >> 1
查看当前用户其他的项目集看板详情 >> 项目集2
*/
global $tester;
$tester->loadModel('program');
$programTester = new programTest();
$kanbanGroup = $tester->program->getKanbanGroup();
$kanbanGroup = $programTester->getKanbanGroupTest();
r(count($kanbanGroup['my'])) && p('') && e('2'); //查看当前用户负责的项目集看板数量
r(count($kanbanGroup['others'])) && p('') && e('8'); //查看当前用户其他的项目集看板数量
r($kanbanGroup['others']) && p('0:name') && e('项目集2'); //查看当前用户其他的项目集看板详情
r(count($kanbanGroup['others'])) && p('') && e('1'); //查看当前用户其他的项目集看板数量
r($kanbanGroup['others']) && p('0:name') && e('项目集2'); //查看当前用户其他的项目集看板详情
+36 -24
View File
@@ -4,45 +4,57 @@ include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
su('admin');
$program = zdTable('project');
$program->id->range('1-20');
$program->name->range('1-20')->prefix('项目集');
$program->type->range('program');
$program->path->range('1-20')->prefix(',')->postfix(',');
$program->grade->range('1');
$program->status->range('wait,doing,suspended,closed');
$program->openedBy->range('admin,test1');
$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->gen(20);
/**
title=测试 programModel::getList();
cid=1
pid=1
查看所有项目和项目集的个数 >> 120
查看所有项目和项目集的个数 >> 20
查看分页后项目集和项目的个数 >> 10
查看所有'closed'的项目和项目集的个数 >> 11
查看所有'suspended'的项目和项目集的个数 >> 11
查看所有'closed'的项目和项目集的个数 >> 5
查看所有'suspended'的项目和项目集的个数 >> 5
按照项目和项目集名称倒序获取第一个ID >> 9
按照ID正序获取项目和项目集列表第一个ID >> 1
获取顶级项目集个数 >> 30
获取顶级项目集个数 >> 20
获取分页后顶级项目集个数 >> 10
获取分页后顶级项目集个数 >> 120
获取所有项目集个数 >> 20
*/
global $tester;
$program = new programTest();
$programTester = new programTest();
$tester->app->loadClass('pager', $static = true);
$pager = new pager(0, 10, 1);
$allPorgrams = $program->getList('all');
$pagerPrograms = $program->getList('all', 'id_asc', $pager);
$closedPrograms = $program->getList('closed');
$suspendedPrograms = $program->getList('closed');
$namedescPrograms = $program->getList('all', 'name_desc');
$idascPrograms = $program->getList('all', 'id_asc');
$topPrograms = $program->getList('all', 'id_asc', null, 'top');
$topPagePrograms = $program->getList('all', 'id_asc', $pager, 'top');
$childPrograms = $program->getList('all', 'id_asc', null, 'child', $topPrograms);
$allPorgrams = $programTester->getListTest('all');
$pagerPrograms = $programTester->getListTest('all', 'id_asc', $pager);
$closedPrograms = $programTester->getListTest('closed');
$suspendedPrograms = $programTester->getListTest('closed');
$namedescPrograms = $programTester->getListTest('all', 'name_desc');
$idascPrograms = $programTester->getListTest('all', 'id_asc');
$topPrograms = $programTester->getListTest('all', 'id_asc', null, 'top');
$topPagePrograms = $programTester->getListTest('all', 'id_asc', $pager, 'top');
$childPrograms = $programTester->getListTest('all', 'id_asc', null, 'child', $topPrograms);
r(count($allPorgrams)) && p() && e('120'); // 查看所有项目和项目集的个数
r(count($pagerPrograms)) && p() && e('10'); // 查看分页后项目集和项目的个数
r(count($closedPrograms)) && p() && e('11'); // 查看所有'closed'的项目和项目集的个数
r(count($suspendedPrograms)) && p() && e('11'); // 查看所有'suspended'的项目和项目集的个数
r(key($namedescPrograms)) && p() && e('9'); // 按照项目和项目集名称倒序获取第一个ID
r(key($idascPrograms)) && p() && e('1'); // 按照ID正序获取项目和项目集列表第一个ID
r(count($topPrograms)) && p() && e('30'); // 获取顶级项目集个数
r(count($topPagePrograms)) && p() && e('10'); // 获取分页后顶级项目集个数
r(count($childPrograms)) && p() && e('120'); // 获取分页后顶级项目集个数
r(count($allPorgrams)) && p() && e('20'); // 查看所有项目和项目集的个数
r(count($pagerPrograms)) && p() && e('10'); // 查看分页后项目集和项目的个数
r(count($closedPrograms)) && p() && e('5'); // 查看所有'closed'的项目和项目集的个数
r(count($suspendedPrograms)) && p() && e('5'); // 查看所有'suspended'的项目和项目集的个数
r(key($namedescPrograms)) && p() && e('9'); // 按照项目和项目集名称倒序获取第一个ID
r(key($idascPrograms)) && p() && e('1'); // 按照ID正序获取项目和项目集列表第一个ID
r(count($topPrograms)) && p() && e('20'); // 获取顶级项目集个数
r(count($topPagePrograms)) && p() && e('10'); // 获取分页后顶级项目集个数
r(count($childPrograms)) && p() && e('20'); // 获取所有项目集个数
+26 -11
View File
@@ -1,6 +1,21 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
su('admin');
$program = zdTable('project');
$program->id->range('1-20');
$program->name->range('1-20')->prefix('项目集');
$program->type->range('program');
$program->path->range('1-20')->prefix(',')->postfix(',');
$program->grade->range('1');
$program->status->range('wait,doing,suspended,closed');
$program->openedBy->range('admin,test1');
$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->deleted->range('0{15},1{5}');
$program->gen(20);
/**
@@ -8,18 +23,18 @@ title=测试 programModel::getPairs();
cid=1
pid=1
获取项目集个数 >> 6
获取项目集个数 >> 10
获取项目集id为9的名称 >> 项目集9
获取项目集个数 >> 15
获取所有项目集个数 >> 15
获取按照id正序的第一个项目集名称 >> 项目集1
*/
global $tester;
$tester->loadModel('program');
$programs1 = $tester->program->getPairs();
$programs2 = $tester->program->getPairs('true');
$programTester = new programTest();
r(count($programs1)) && p() && e('6'); // 获取项目集个数
r(count($programs2)) && p() && e('10'); // 获取项目集个数
r($programs1) && p('9') && e('项目集9'); // 获取项目集id为9的名称
r($programs2) && p('11') && e(''); // 获取不存在的项目集
$programs1 = $programTester->getPairsTest();
$programs2 = $programTester->getPairsTest('true');
$programs3 = $programTester->getPairsTest('false', 'id_asc');
r(count($programs1)) && p() && e('15'); // 获取项目集个数
r(count($programs2)) && p() && e('15'); // 获取所有项目集个数
r(current($programs3)) && p('1') && e('项目集1'); // 获取按照id正序的第一个项目集名称
+24 -12
View File
@@ -2,6 +2,19 @@
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
su('admin');
$program = zdTable('project');
$program->id->range('1-10');
$program->name->range('1-10')->prefix('项目集');
$program->type->range('program');
$program->path->range('1-10')->prefix(',')->postfix(',');
$program->grade->range('1');
$program->status->range('wait,doing,suspended,closed');
$program->openedBy->range('admin,test1');
$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->gen(10);
/**
@@ -13,20 +26,19 @@ pid=1
通过字符串'1,2,3'获取项目集名称 >> 项目集1,项目集2,项目集3
通过数组array(1)获取项目集名称 >> 项目集1
通过数组array(1,2,3)获取项目集名称 >> 项目集1,项目集2,项目集3
通过id为空获取项目集名称 >> Not Found
通过id=0获取项目集名称 >> Not Found
通过id=11获取项目集名称 >> Not Found
通过id为空获取项目集名称 >> 0
通过id=0获取项目集名称 >> 0
通过id=11获取项目集名称 >> 0
*/
$program = new programTest();
$programTester = new programTest();
$programIdList = array('1', '1,2,3', array(1), array(1,2,3), '', '0', '11');
r($program->getPairsByList($programIdList[0])) && p('1') && e('项目集1'); // 通过字符串'1'获取项目集名称
r($program->getPairsByList($programIdList[1])) && p('1,2,3') && e('项目集1,项目集2,项目集3'); // 通过字符串'1,2,3'获取项目集名称
r($program->getPairsByList($programIdList[2])) && p('1') && e('项目集1'); // 通过数组array(1)获取项目集名称
r($program->getPairsByList($programIdList[3])) && p('1,2,3') && e('项目集1,项目集2,项目集3'); // 通过数组array(1,2,3)获取项目集名称
r($program->getPairsByList($programIdList[4])) && p('message') && e('Not Found'); // 通过id为空获取项目集名称
r($program->getPairsByList($programIdList[5])) && p('message') && e('Not Found'); // 通过id=0获取项目集名称
r($program->getPairsByList($programIdList[6])) && p('message') && e('Not Found'); // 通过id=11获取项目集名称
r($programTester->getPairsByListTest($programIdList[0])) && p('1') && e('项目集1'); // 通过字符串'1'获取项目集名称
r($programTester->getPairsByListTest($programIdList[1])) && p('1,2,3') && e('项目集1,项目集2,项目集3'); // 通过字符串'1,2,3'获取项目集名称
r($programTester->getPairsByListTest($programIdList[2])) && p('1') && e('项目集1'); // 通过数组array(1)获取项目集名称
r($programTester->getPairsByListTest($programIdList[3])) && p('1,2,3') && e('项目集1,项目集2,项目集3'); // 通过数组array(1,2,3)获取项目集名称
r($programTester->getPairsByListTest($programIdList[4])) && p('') && e('0'); // 通过id为空获取项目集名称
r($programTester->getPairsByListTest($programIdList[5])) && p('') && e('0'); // 通过id=0获取项目集名称
r($programTester->getPairsByListTest($programIdList[6])) && p('') && e('0'); // 通过id=11获取项目集名称
+30 -11
View File
@@ -2,6 +2,25 @@
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
su('admin');
$program = zdTable('project');
$program->id->range('1-10');
$program->name->setFields(array(
array('field' => 'name1', 'range' => '项目集{5},项目{5}'),
array('field' => 'name2', 'range' => '1-5'),
));
$program->type->range('program{5},project{5}');
$program->path->range('1-5,`1,6`,`2,7`,`3,8`,`4,9`,`5,10`')->prefix(',')->postfix(',');
$program->grade->range('1{5},2{5}');
$program->parent->range('0{5},1-5');
$program->status->range('wait,doing,suspended,closed');
$program->model->range('[]{5},scrum{2},waterfall{2},kanban');
$program->openedBy->range('admin,test1');
$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->deleted->range('0{15},1{5}');
$program->gen(10);
/**
@@ -9,22 +28,22 @@ title=测试 programModel::getParentPairs();
cid=1
pid=1
获取所有父项目集的数量 >> 7
获取瀑布类型父项目集的数量 >> 1
获取ID为1的父项目集的名称 >> /项目集1
获取父项目集的名称显示根目录 >> /
获取所有父项目集的数量 >> 5
获取瀑布类型父项目集的数量 >> 1
获取ID为1的父项目集的名称 >> /项目集1
获取父项目集的名称显示根目录 >> 0
获取ID为1的父项目集的名称不显示根目录 >> 项目集1
*/
global $tester;
$tester->loadModel('program');
$program1 = $tester->program->getParentPairs();
$program2 = $tester->program->getParentPairs('waterfall');
$program3 = $tester->program->getParentPairs('', 'noclosed', false);
$programTester = new programTest();
r(count($program1)) && p() && e('7'); // 获取所有父项目集的数量
$program1 = $programTester->getParentPairsTest();
$program2 = $programTester->getParentPairsTest('waterfall');
$program3 = $programTester->getParentPairsTest('', 'noclosed', false);
r(count($program1)) && p() && e('5'); // 获取所有父项目集的数量
r(count($program2)) && p() && e('1'); // 获取瀑布类型父项目集的数量
r($program1) && p('1') && e('/项目集1'); // 获取ID为1的父项目集的名称
r($program1) && p('0') && e('/'); // 获取父项目集的名称显示根目录
r(key($program1)) && p('0') && e('0'); // 获取父项目集的名称显示根目录
r(array_shift($program3)) && p() && e('项目集1'); // 获取ID为1的父项目集的名称不显示根目录
+25 -9
View File
@@ -1,8 +1,25 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
su('admin');
$program = zdTable('project');
$program->id->range('1-10');
$program->name->range('1-10')->prefix('项目集');
$program->type->range('program');
$program->path->range('1-5,`1,6`,`2,7`,`3,8`,`4,9`,`5,10`')->prefix(',')->postfix(',');
$program->grade->range('1{5},2{5}');
$program->parent->range('0{5},1-5');
$program->status->range('wait,doing,suspended,closed');
$program->openedBy->range('admin,test1');
$program->pm->range('admin,test1');
$program->acl->range('private');
$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->deleted->range('0{15},1{5}');
$program->gen(10);
/**
title=测试 programModel::getParentPM();
@@ -10,17 +27,16 @@ cid=1
pid=1
获取父项目集的负责人数量 >> 2
获取父项目集的负责人account >> pm2
获取父项目集的负责人account >> pm3
获取父项目集的负责人account >> admin
获取父项目集的负责人account >> test1
*/
global $tester;
$tester->loadModel('program');
$programTester = new programTest();
$programIdList = array(11, 12, 13);
$parentPM = $tester->program->getParentPM($programIdList);
$programIdList = array(5, 6, 7);
$parentPM = $programTester->getParentPMTest($programIdList);
r(count($parentPM)) && p() && e('2'); // 获取父项目集的负责人数量
r($parentPM) && p('12:pm2') && e('pm2'); // 获取父项目集的负责人account
r($parentPM) && p('13:pm3') && e('pm3'); // 获取父项目集的负责人account
r(count($parentPM)) && p() && e('2'); // 获取父项目集的负责人数量
r($parentPM) && p('6:admin') && e('admin'); // 获取父项目集的负责人account
r($parentPM) && p('7:test1') && e('test1'); // 获取父项目集的负责人account
+34 -13
View File
@@ -1,6 +1,29 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
su('admin');
/* Create program data. */
$program = zdTable('project');
$program->id->range('1');
$program->name->range('项目集1');
$program->type->range('program');
$program->grade->range('1');
$program->path->range('1')->prefix(',')->postfix(',');
$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->gen(1);
/* Create product data. */
$product = zdTable('product');
$product->id->range('1-10');
$product->name->range('1-10')->prefix('产品');
$product->program->range('1');
$product->type->range('normal');
$product->status->range('normal,closed');
$product->vision->range('rnd');
$product->gen(10);
/**
@@ -8,21 +31,19 @@ title=测试 programModel::getProductPairs();
cid=1
pid=1
获取项目集1下的所有产品数量 >> 6
根据项目集ID获取关联产品名字 >> 已关闭的正常产品24
获取项目集1下的未关闭的产品数量 >> 4
根据项目或项目集ID获取关联产品详情 >> 已关闭的正常产品24
获取项目集1下的所有产品数量 >> 10
根据项目集ID获取关联产品名字 >> 产品2
获取项目集1下的未关闭的产品数量 >> 5
根据项目或项目集ID获取关联产品详情 >> 产品3
*/
global $tester;
$tester->loadModel('program');
$programTester = new programTest();
$products1 = $tester->program->getProductPairs(1, 'assign', 'all');
$products2 = $tester->program->getProductPairs(1, 'assign', 'noclosed');
$products1 = $programTester->getProductPairsTest(1, 'assign', 'all');
$products2 = $programTester->getProductPairsTest(1, 'assign', 'noclosed');
r(count($products1)) && p() && e('6'); //获取项目集1下的所有产品数量
r($products1) && p('24') && e('已关闭的正常产品24'); //根据项目集ID获取关联产品名字
r(count($products2)) && p() && e('4'); //获取项目集1下的未关闭的产品数量
r($products2) && p('24') && e('已关闭的正常产品24'); //根据项目或项目集ID获取关联产品详情
r(count($products1)) && p() && e('10'); // 获取项目集1下的所有产品数量
r($products1) && p('2') && e('产品2'); // 根据项目集ID获取关联产品名字
r(count($products2)) && p() && e('5'); // 获取项目集1下的未关闭的产品数量
r($products2) && p('3') && e('产品3'); // 根据项目或项目集ID获取关联产品详情
+36 -9
View File
@@ -1,24 +1,51 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
su('admin');
$program = zdTable('project');
$program->id->range('1-8');
$program->name->setFields(array(
array('field' => 'name1', 'range' => '项目集{2},项目{3},迭代{3}'),
array('field' => 'name2', 'range' => '1-8')
));
$program->type->range('program{2},project{3},sprint{3}');
$program->status->range('doing');
$program->parent->range('0,0,1,1,2,3,4,5');
$program->grade->range('1{2},2{3},1{3}');
$program->project->range('0{5},3-5');
$program->path->range('1,2,`1,3`,`1,4`,`2,5`,`3,6`,`4,7`,`5,8`')->prefix(',')->postfix(',');
$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->end->range('20230212 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->gen(8);
$task = zdTable('task');
$task->name->prefix('任务')->range('1-3');
$task->project->range('3-5');
$task->execution->range('6-8');
$task->estimate->range('6-8');
$task->consumed->range('1,3,2');
$task->left->range('5,4,6');
$task->status->range('doing');
$task->assignedTo->range('admin');
$task->gen(3);
/**
title=测试 programModee::getProgressList();
cid=1
pid=1
获取项目和项目集的个数 >> 120
获取id=1的项目的进度 >> 41
获取id=11的项目集的进度 >> 45
获取项目和项目集的个数 >> 5
获取id=2的项目的进度 >> 25
获取id=4的项目集的进度 >> 43
*/
global $tester;
$tester->loadModel('program');
$progressList = $tester->program->getProgressList();
$programTester = new programTest();
$progressList = $programTester->getProgressListTest();
r(count($progressList)) && p() && e('120'); // 获取项目和项目集的个数
r($progressList) && p('1') && e('41'); // 获取id=1的项目的进度
r($progressList) && p('11') && e('45'); // 获取id=11的项目集的进度
r(count($progressList)) && p() && e('5'); // 获取项目和项目集的个数
r($progressList) && p('2') && e('25'); // 获取id=2的项目的进度
r($progressList) && p('4') && e('43'); // 获取id=4的项目集的进度
+32 -20
View File
@@ -1,36 +1,48 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
su('admin');
$program = zdTable('project');
$program->id->range('1-5');
$program->name->range('项目集1,项目集2,项目1,项目2,项目3');
$program->type->range('program{2},project{3}');
$program->status->range('doing{3},closed,doing');
$program->parent->range('0,0,1,1,2');
$program->grade->range('1{2},2{3}');
$program->path->range('1,2,`1,3`,`1,4`,`2,5`')->prefix(',')->postfix(',');
$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->gen(5);
/**
title=测试 programModel::getProjectList();
cid=1
pid=1
获取所有项目列表数量 >> 110
获取未完成项目列表数量 >> 88
带项目集名称的项目列表数量 >> 88
获取我参与的项目列表数量 >> 1
不带项目集名称的项目名称 >> 项目2
带项目集名称的项目名称 >> 项目集2/项目2
我参与的项目的名称 >> 项目集1/项目1
获取所有项目列表数量 >> 3
获取未完成项目列表数量 >> 2
带项目集名称的项目列表数量 >> 2
获取我参与的项目列表数量 >> 1
不带项目集名称的项目名称 >> 项目2
带项目集名称的项目名称 >> 项目集2/项目3
我参与的项目的名称 >> 项目集1/项目1
*/
global $tester;
$tester->loadModel('program');
$programTester = new programTest();
$allProjects = $tester->program->getProjectList(0);
$undoneProjects = $tester->program->getProjectList(0, 'undone');
$withProgramProjects = $tester->program->getProjectList(0, 'undone', 0, 'id_desc', null, 1);
$involvedProjects = $tester->program->getProjectList(0, 'undone', 0, 'id_desc', null, 1, true);
$allProjects = $programTester->getProjectListTest(0);
$undoneProjects = $programTester->getProjectListTest(0, 'undone');
$withProgramProjects = $programTester->getProjectListTest(0, 'undone', 0, 'id_desc', null, 1);
$involvedProjects = $programTester->getProjectListTest(0, 'undone', 0, 'id_desc', null, 1, true);
r(count($allProjects)) && p() && e('110'); // 获取所有项目列表数量
r(count($undoneProjects)) && p() && e('88'); // 获取未完成项目列表数量
r(count($withProgramProjects)) && p() && e('88'); // 带项目集名称的项目列表数量
r(count($involvedProjects)) && p() && e('1'); // 获取我参与的项目列表数量
r($allProjects) && p('12:name') && e('项目2'); // 不带项目集名称的项目名称
r($withProgramProjects) && p('12:name') && e('项目集2/项目2'); // 带项目集名称的项目名称
r($involvedProjects) && p('11:name') && e('项目集1/项目1'); // 我参与的项目的名称
r(count($allProjects)) && p() && e('3'); // 获取所有项目列表数量
r(count($undoneProjects)) && p() && e('2'); // 获取未完成项目列表数量
r(count($withProgramProjects)) && p() && e('2'); // 带项目集名称的项目列表数量
r(count($involvedProjects)) && p() && e('1'); // 获取我参与的项目列表数量
r($allProjects) && p('4:name') && e('项目2'); // 不带项目集名称的项目名称
r($withProgramProjects) && p('5:name') && e('项目集2/项目3'); // 带项目集名称的项目名称
r($involvedProjects) && p('3:name') && e('项目集1/项目1'); // 我参与的项目的名称
+25 -12
View File
@@ -1,27 +1,40 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
su('admin');
$program = zdTable('project');
$program->id->range('1-5');
$program->name->range('项目集1,项目集2,项目1,项目2,项目3');
$program->type->range('program{2},project{3}');
$program->status->range('doing{3},closed,doing');
$program->parent->range('0,0,1,1,2');
$program->grade->range('1{2},2{3}');
$program->path->range('1,2,`1,3`,`1,4`,`2,5`')->prefix(',')->postfix(',');
$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->gen(5);
/**
title=测试 programModel::getProjectStats();
cid=1
pid=1
查看当前项目集下所有未完成的项目的个数 >> 7
查看当前项目集下所有未完成的项目的个数 >> 7
查看当前项目集下所有未完成的项目按照id倒序排的第一个项目集信息 >> 91,项目81
查看当前项目集下所有未完成的项目按照id正序排的第一个项目集信息 >> 12,项目2
查看当前项目集下所有未完成的项目的个数 >> 1
查看当前项目集下所有未完成的项目的个数 >> 1
查看当前项目集下所有未完成的项目按照id倒序排的第一个项目集信息 >> 3,项目1
查看当前项目集下所有未完成的项目按照id正序排的第一个项目集信息 >> 5,项目3
*/
global $tester;
$tester->loadModel('program');
$stats1 = $tester->program->getProjectStats(1);
$stats2 = $tester->program->getProjectStats(2, 'undone', 0, 'id_asc', null);
$programTester = new programTest();
r(count($stats1)) && p() && e('7'); // 查看当前项目集下所有未完成的项目的个数
r(count($stats2)) && p() && e('7'); // 查看当前项目集下所有未完成的项目的个数
r(current($stats1)) && p('id,name') && e('91,项目81'); // 查看当前项目集下所有未完成的项目按照id倒序排的第一个项目集信息
r(current($stats2)) && p('id,name') && e('12,项目2'); // 查看当前项目集下所有未完成的项目按照id正序排的第一个项目集信息
$stats1 = $programTester->getProjectStatsTest(1);
$stats2 = $programTester->getProjectStatsTest(2, 'undone', 0, 'id_asc', null);
r(count($stats1)) && p() && e('1'); // 查看当前项目集下所有未完成的项目的个数
r(count($stats2)) && p() && e('1'); // 查看当前项目集下所有未完成的项目的个数
r(current($stats1)) && p('id,name') && e('3,项目1'); // 查看当前项目集下所有未完成的项目按照id倒序排的第一个项目集信息
r(current($stats2)) && p('id,name') && e('5,项目3'); // 查看当前项目集下所有未完成的项目按照id正序排的第一个项目集信息
+35 -12
View File
@@ -1,27 +1,50 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
su('admin');
$program = zdTable('project');
$program->id->range('1-5');
$program->name->range('项目集1,项目集2,项目1,项目2,项目3');
$program->type->range('program{2},project{3}');
$program->status->range('wait');
$program->parent->range('0,0,1,1,2');
$program->grade->range('1{2},2{3}');
$program->path->range('1,2,`1,3`,`1,4`,`2,5`')->prefix(',')->postfix(',');
$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->gen(5);
$team = zdTable('team');
$team->id->range('1-5');
$team->root->range('3-5');
$team->type->range('project');
$team->account->range('admin');
$team->account->setFields(array(
array('field' => 'account1', 'range' => 'admin,test{4}'),
array('field' => 'account2', 'range' => '[],1-4'),
));
$team->gen(5);
/**
title=测试 programModel::getTeamMemberPairs();
cid=1
pid=1
获取项目集1下所有团队成员数量 >> 19
获取项目集2下所有团队成员数量 >> 19
获取项目集1下所有团队成员真实姓名 >> P:产品经理92
获取项目集2下所有团队成员真实姓名 >> U:测试83
获取项目集1下所有团队成员数量 >> 5
获取项目集2下所有团队成员数量 >> 2
获取项目集1下所有团队成员真实姓名 >> A:admin
获取项目集2下所有团队成员真实姓名 >> T:测试2
*/
global $tester;
$tester->loadModel('program');
$teams1 = $tester->program->getTeamMemberPairs(1);
$teams2 = $tester->program->getTeamMemberPairs(2);
$programTester = new programTest();
$teams1 = $programTester->getTeamMemberPairsTest(1);
$teams2 = $programTester->getTeamMemberPairsTest(2);
r(count($teams1)) && p() && e('19'); // 获取项目集1下所有团队成员数量
r(count($teams2)) && p() && e('19'); // 获取项目集2下所有团队成员数量
r($teams1) && p('pm92') && e('P:产品经理92'); // 获取项目集1下所有团队成员真实姓名
r($teams2) && p('user83') && e('U:测试83'); // 获取项目集2下所有团队成员真实姓名
r(count($teams1)) && p() && e('5'); // 获取项目集1下所有团队成员数量
r(count($teams2)) && p() && e('2'); // 获取项目集2下所有团队成员数量
r($teams1) && p('admin') && e('A:admin'); // 获取项目集1下所有团队成员真实姓名
r($teams2) && p('test2') && e('T:测试2'); // 获取项目集2下所有团队成员真实姓名
+20 -8
View File
@@ -1,23 +1,35 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
su('admin');
$program = zdTable('project');
$program->id->range('1-5');
$program->name->range('项目集1,项目集2');
$program->type->range('program');
$program->grade->range('1,1,0{3}');
$program->status->range('wait,closed,wait{3}');
$program->parent->range('0,0,1,1,2');
$program->path->range('1,2,`1,3`,`1,4`,`2,5`')->prefix(',')->postfix(',');
$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->gen(5);
/**
title=测试 programModel::getTopPairs();
cid=1
pid=1
获取系统中所有顶级项目集数量 >> 10
获取系统中所有未关闭的顶级项目集数量 >> 10
获取系统中所有顶级项目集数量 >> 10
获取系统中所有顶级项目集数量 >> 2
获取系统中所有未关闭的顶级项目集数量 >> 1
获取系统中所有顶级项目集数量 >> 2
*/
global $tester;
$tester->loadModel('program');
$programTester = new programTest();
r(count($tester->program->getTopPairs())) && p() && e('10'); // 获取系统中所有顶级项目集数量
r(count($tester->program->getTopPairs('', 'noclosed'))) && p() && e('10'); // 获取系统中所有未关闭的顶级项目集数量
r(count($tester->program->getTopPairs('', '', true))) && p() && e('10'); // 获取系统中所有顶级项目集数量
r(count($programTester->getTopPairsTest())) && p() && e('2'); // 获取系统中所有顶级项目集数量
r(count($programTester->getTopPairsTest('', 'noclosed'))) && p() && e('1'); // 获取系统中所有未关闭的顶级项目集数量
r(count($programTester->getTopPairsTest('', '', true))) && p() && e('2'); // 获取系统中所有顶级项目集数量
+18 -6
View File
@@ -1,6 +1,19 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
su('admin');
$program = zdTable('project');
$program->id->range('1-5');
$program->name->range('项目集1,项目集2');
$program->type->range('program');
$program->status->range('wait');
$program->parent->range('0,0,1,1,2');
$program->path->range('1,2,`1,3`,`1,4`,`2,5`')->prefix(',')->postfix(',');
$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->gen(5);
/**
@@ -8,12 +21,11 @@ title=测试 programModel::getTreeMenu();
cid=1
pid=1
查看返回的字符个数 >> 789
查看返回的字符个数 >> 项目集1项目集2
*/
$programTester = new programTest();
$programs1 = $programTester->getTreeMenuTest(1);
$programs1 = preg_replace('/\s*/', '', strip_tags($programs1));
global $tester;
$tester->loadModel('program');
$programs1 = $tester->program->getTreeMenu(1);
r(strlen($programs1)) && p() && e('789'); // 查看返回的字符个数
r($programs1) && p() && e('项目集1项目集2'); // 查看返回的字符个数
+17 -8
View File
@@ -1,23 +1,32 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
su('admin');
$program = zdTable('project');
$program->id->range('1-5');
$program->name->range('项目集1,项目集2');
$program->type->range('program');
$program->status->range('wait');
$program->parent->range('0,0,1,1,2');
$program->path->range('1,2,`1,3`,`1,4`,`2,5`')->prefix(',')->postfix(',');
$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->gen(5);
/**
title=测试 programModel::hasUnfinished();
cid=1
pid=1
获取项目集1下未完成的项目和项目集数量 >> 9
获取项目集2下未完成的项目和项目集数量 >> 7
获取项目集1下未完成的项目和项目集数量 >> 2
获取项目集2下未完成的项目和项目集数量 >> 1
*/
global $tester;
$tester->loadModel('program');
$program1 = $tester->program->getById(1);
$program2 = $tester->program->getById(2);
$programTester = new programTest();
r($tester->program->hasUnfinished($program1)) && p() && e('9'); // 获取项目集1下未完成的项目和项目集数量
r($tester->program->hasUnfinished($program2)) && p() && e('7'); // 获取项目集2下未完成的项目和项目集数量
r($programTester->hasUnfinishedTest(1)) && p() && e('2'); // 获取项目集1下未完成的项目和项目集数量
r($programTester->hasUnfinishedTest(2)) && p() && e('1'); // 获取项目集2下未完成的项目和项目集数量
+24 -13
View File
@@ -2,6 +2,18 @@
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
su('admin');
$program = zdTable('project');
$program->id->range('1,2');
$program->name->range('项目集1,项目集2');
$program->type->range('program');
$program->status->range('wait');
$program->parent->range('0');
$program->path->range('1,2')->prefix(',')->postfix(',');
$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->gen(2);
/**
@@ -9,24 +21,23 @@ title=测试 programModel::createStakeholder();
cid=1
pid=1
传入项目集1,动作为closed,判断是否可点击 >> 1
传入项目集1,动作为closed,判断是否可点击 >> 1
传入项目集1,动作为activate,判断是否可点击 >> 0
传入项目集1,动作为suspend,判断是否可点击 >> 1
传入项目集2,动作为closed,判断是否可点击 >> 1
传入项目集1,动作为suspend,判断是否可点击 >> 1
传入项目集2,动作为closed,判断是否可点击 >> 1
传入项目集2,动作为activate,判断是否可点击 >> 0
传入项目集2,动作为activate,判断是否可点击 >> 1
*/
global $tester;
$tester->loadModel('program');
$programTester = new programTest();
$program1 = $tester->program->getById(1);
$program2 = $tester->program->getById(2);
$program1 = $programTester->getByIDTest(1);
$program2 = $programTester->getByIDTest(2);
r($tester->program->isClickable($program1, 'close')) && p('') && e('1'); // 传入项目集1,动作为closed,判断是否可点击
r($tester->program->isClickable($program1, 'activate')) && p('') && e('0'); // 传入项目集1,动作为activate,判断是否可点击
r($tester->program->isClickable($program1, 'suspend')) && p('') && e('1'); // 传入项目集1,动作为suspend,判断是否可点击
r($tester->program->isClickable($program2, 'close')) && p('') && e('1'); // 传入项目集2,动作为closed,判断是否可点击
r($tester->program->isClickable($program2, 'activate')) && p('') && e('0'); // 传入项目集2,动作为activate,判断是否可点击
r($tester->program->isClickable($program2, 'suspend')) && p('') && e('1'); // 传入项目集2,动作为activate,判断是否可点击
r($programTester->isClickableTest($program1, 'close')) && p('') && e('1'); // 传入项目集1,动作为closed,判断是否可点击
r($programTester->isClickableTest($program1, 'activate')) && p('') && e('0'); // 传入项目集1,动作为activate,判断是否可点击
r($programTester->isClickableTest($program1, 'suspend')) && p('') && e('1'); // 传入项目集1,动作为suspend,判断是否可点击
r($programTester->isClickableTest($program2, 'close')) && p('') && e('1'); // 传入项目集2,动作为closed,判断是否可点击
r($programTester->isClickableTest($program2, 'activate')) && p('') && e('0'); // 传入项目集2,动作为activate,判断是否可点击
r($programTester->isClickableTest($program2, 'suspend')) && p('') && e('1'); // 传入项目集2,动作为activate,判断是否可点击
+18 -10
View File
@@ -1,26 +1,34 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
su('admin');
$program = zdTable('project');
$program->id->range('1,10');
$program->name->range('项目集1');
$program->type->range('program');
$program->parent->range('[],[1]');
$program->path->range('1,10')->prefix(',')->postfix(',');
$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->gen(2);
/**
title=测试 programModel::setTreePath();
cid=1
pid=1
设置之前的项目集的path >> ,2,12,
设置之后的项目集的path >> ,2,12,
设置之前的项目集的path >> ,10,
设置之后的项目集的path >> ,1,10,
*/
global $tester;
$tester->loadModel('program');
$programTester = new programTest();
$before = $tester->program->getById(12);
$tester->program->setTreePath(12);
$after = $tester->program->getById(12);
$before = $programTester->getByIDTest(10);
$after = $programTester->setTreePathTest(10);
r($before) && p('path') && e(',2,12,'); // 设置之前的项目集的path
r($after) && p('path') && e(',2,12,'); // 设置之后的项目集的path
$db->restoreDB();
r($before) && p('path') && e(',10,'); // 设置之前的项目集的path
r($after) && p('path') && e(',1,10,'); // 设置之后的项目集的path
+26 -18
View File
@@ -2,16 +2,24 @@
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
$db->switchDB();
su('admin');
$program = zdTable('project');
$program->id->range('1');
$program->name->range('项目集1');
$program->type->range('program');
$program->path->range('1')->prefix(',')->postfix(',');
$program->begin->range('20220112 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->end->range('20220212 000000:0')->type('timestamp')->format('YY/MM/DD');
$program->gen(1);
/**
title=测试 programModel::update();
cid=1
pid=1
正常更新项目集的情况 >> 测试更新项目集十
正常更新项目集的情况 >> 测试更新项目集
更新项目集名称为空时 >> 『项目集名称』不能为空。
当计划开始为空时更新项目集信息 >> 『计划开始』不能为空。
当计划完成为空时更新项目集信息 >> 『计划完成』不能为空。
@@ -19,19 +27,20 @@ pid=1
*/
$program = new programTest();
$programTester = new programTest();
$data = array(
'parent' => '0',
'name' => '测试更新项目集十',
'begin' => '2020-10-10',
'end' => '2022-09-03',
'acl' => 'private',
'budget' => '100',
'budgetUnit' => 'CNY',
'syncPRJUnit' => true,
'parent' => '0',
'name' => '测试更新项目集',
'begin' => '2020-10-10',
'end' => '2023-09-03',
'acl' => 'private',
'budget' => '100',
'status' => 'wait',
'budgetUnit' => 'CNY',
'syncPRJUnit' => true,
'exchangeRate' => '',
'whitelist' => array('dev10', 'dev12')
'whitelist' => array('dev10', 'dev12')
);
$normalProgram = $data;
@@ -48,9 +57,8 @@ $emptyEndProgram['end'] = '';
$realBeganProgram = $data;
$realBeganProgram['realBegan'] = '2020-11-10';
r($program->update(10, $normalProgram)) && p('name') && e('测试更新项目集十'); // 正常更新项目集的情况
r($program->update(10, $emptyTitleProgram)) && p('message[name]:0') && e('『项目集名称』不能为空。'); // 更新项目集名称为空时
r($program->update(10, $emptyBeginProgram)) && p('message[begin]:0') && e('『计划开始』不能为空。'); // 当计划开始为空时更新项目集信息
r($program->update(10, $emptyEndProgram)) && p('message[end]:0') && e('『计划完成』不能为空。'); // 当计划完成为空时更新项目集信息
r($program->update(10, $realBeganProgram)) && p('status') && e('doing'); // 更新未开始的项目集实际开始时间
$db->restoreDB();
r($programTester->updateTest(1, $normalProgram)) && p('name') && e('测试更新项目集'); // 正常更新项目集的情况
r($programTester->updateTest(1, $emptyTitleProgram)) && p('message[name]:0') && e('『项目集名称』不能为空。'); // 更新项目集名称为空时
r($programTester->updateTest(1, $emptyBeginProgram)) && p('message[begin]:0') && e('『计划开始』不能为空。'); // 当计划开始为空时更新项目集信息
r($programTester->updateTest(1, $emptyEndProgram)) && p('message[end]:0') && e('『计划完成』不能为空。'); // 当计划完成为空时更新项目集信息
r($programTester->updateTest(1, $realBeganProgram)) && p('status') && e('doing'); // 更新未开始的项目集实际开始时间