Merge branch 'sprint/tsj_uinttest' into 'master'

Sprint/tsj uinttest

See merge request easycorp/zentaopms!6710
This commit is contained in:
王怡栋
2023-01-06 03:08:40 +00:00
13 changed files with 416 additions and 35 deletions
+87
View File
@@ -15,6 +15,34 @@ class programTest
$this->program = $tester->loadModel('program');
}
/**
* Get switcher.
*
* @param int $programID
* @access public
* @return string
*/
public function getSwitcherTest($programID = 0)
{
return $this->program->getSwitcher($programID);
}
/**
* Get list by search.
*
* @param string $orderBy
* @param int $queryID
* @param string $sql
* @access public
* @return array
*/
public function getListBySearchTest($orderBy = 'id_asc', $queryID = 0, $sql = '')
{
if(!empty($sql)) $_SESSION['programQuery'] = $sql;
return $this->program->getListBySearch($orderBy, $queryID);
}
/**
* Get pairs.
*
@@ -361,4 +389,63 @@ class programTest
{
return $this->program->getProgressList();
}
/**
* Get stakeholders.
*
* @param int $programID
* @param string $orderBy
* @access public
* @return array
*/
public function getStakeholdersTest($programID, $orderBy = 'id_desc')
{
return $this->program->getStakeholders($programID, $orderBy);
}
/**
* Test save state.
*
* @param int $programID
* @param array $programs
* @access public
* @return array
*/
public function saveStateTest($programID = 0, $programs = array())
{
return $this->program->saveState($programID, $programs);
}
/**
* Test build operate menu.
*
* @param int $programID
* @access public
* @return string
*/
public function buildOperateMenuTest($programID = 0)
{
$program = $this->program->getByID($programID);
if(empty($program)) return '0';
return $this->program->buildOperateMenu($program);
}
/**
* Test set menu.
*
* @param int $programID
* @access public
* @return string
*/
public function setMenuTest($programID = 0)
{
$program = $this->program->getByID($programID);
if(empty($program)) return '0';
$this->program->setMenu($programID);
global $lang;
return strip_tags($lang->switcherMenu);
}
}
+21
View File
@@ -0,0 +1,21 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
/**
title=测试 programModel::getStakeholdersByPrograms();
cid=1
pid=1
权限不足跳转 >> html
*/
global $tester;
$tester->loadModel('program');
ob_start();
$tester->program->accessDenied();
$result = ob_get_clean();
r(substr($result, 1, 4)) && p() && e('html'); // 权限不足跳转
+33
View File
@@ -0,0 +1,33 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
$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);
su('admin');
/**
title=测试 programModel::buildOperateMenu();
cid=1
pid=1
项目集不存在 >> 0
项目集存在 >> div
*/
$programTester = new programTest();
$menus1 = $programTester->buildOperateMenuTest(0);
$menus2 = $programTester->buildOperateMenuTest(1);
r($menus1) && p() && e('0'); // 项目集不存在
r(substr($menus2, 1, 3)) && p() && e('div'); // 项目集存在
+2 -2
View File
@@ -26,8 +26,8 @@ pid=1
*/
$programTester = new programTest();
$result1 = $programTester->getBudgetLeftTest(1);
$result2 = $programTester->getBudgetLeftTest(2);
$result1 = $programTester->getBudgetLeftTest(1);
$result2 = $programTester->getBudgetLeftTest(2);
r($result1) && p() && e('900000'); // 查看项目集1的所有父项目集的预算剩余
r($result2) && p() && e('899900'); // 查看项目集2的所有父项目集的预算剩余
+25
View File
@@ -0,0 +1,25 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
/**
title=测试 programModel::getLink();
cid=1
pid=1
项目集页面跳转项目集项目列表 >> project
非项目集页面跳转项目集列表 >> all
*/
global $tester;
$tester->loadModel('program');
$link1 = $tester->program->getLink('program', 'project', 1);
$result = '';
if(strpos($link1, 'project')) $result = 'project';
r($result) && p() && e('project'); // 项目集页面跳转项目集项目列表
$link2 = $tester->program->getLink('program', 'project', 1, '', 'product');
if(strpos($link2, 'all')) $result = 'all';
r($result) && p() && e('all'); // 非项目集页面跳转项目集列表
+49
View File
@@ -0,0 +1,49 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
zdTable('user')->gen(5);
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,user1');
$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);
$query = zdTable('userquery');
$query->id->range('1');
$query->account->range('admin');
$query->module->range('program');
$query->title->range('搜索条件1');
$query->form->range('`a:41:{s:9:"fieldname";s:0:"";s:11:"fieldstatus";s:0:"";s:9:"fielddesc";s:0:"";s:7:"fieldPM";s:0:"";s:15:"fieldopenedDate";s:0:"";s:10:"fieldbegin";s:0:"";s:8:"fieldend";s:0:"";s:13:"fieldopenedBy";s:0:"";s:19:"fieldlastEditedDate";s:0:"";s:14:"fieldrealBegan";s:0:"";s:12:"fieldrealEnd";s:0:"";s:15:"fieldclosedDate";s:0:"";s:6:"andOr1";s:3:"AND";s:6:"field1";s:4:"name";s:9:"operator1";s:7:"include";s:6:"value1";s:9:"项目集";s:6:"andOr2";s:3:"and";s:6:"field2";s:6:"status";s:9:"operator2";s:1:"=";s:6:"value2";s:0:"";s:6:"andOr3";s:3:"and";s:6:"field3";s:4:"desc";s:9:"operator3";s:7:"include";s:6:"value3";s:0:"";s:10:"groupAndOr";s:3:"and";s:6:"andOr4";s:3:"AND";s:6:"field4";s:6:"status";s:9:"operator4";s:1:"=";s:6:"value4";s:4:"wait";s:6:"andOr5";s:3:"and";s:6:"field5";s:10:"openedDate";s:9:"operator5";s:1:"=";s:6:"value5";s:0:"";s:6:"andOr6";s:3:"and";s:6:"field6";s:5:"begin";s:9:"operator6";s:1:"=";s:6:"value6";s:0:"";s:6:"module";s:7:"program";s:9:"actionURL";s:56:"/program-browse-bySearch-order_asc-0-10-1-myQueryID.html";s:10:"groupItems";s:1:"3";s:8:"formType";s:4:"lite";}`');
$query->sql->range("`(( 1 AND `name` LIKE '%项目集%' ) AND ( 1 AND `status` = 'wait' ))`");
$query->gen(1);
/**
title=测试 programModel::getListBySearch();
cid=1
pid=1
按照id倒序查看,所有名称包含项目集并且未开始的第一个项目集 >> 项目集17
按照id正序查看,所有名称包含项目集并且进行中的第一个项目集 >> 项目集1
按照id正序查看,符合搜索条件id=1,的第一个项目集 >> 项目集1
*/
global $tester;
$programTester = new programTest();
$sql1 = "(( 1 AND `name` LIKE '%项目集%' ) AND ( 1 AND `status` = 'wait' ))";
$sql2 = "(( 1 AND `name` LIKE '%项目集%' ) AND ( 1 AND `status` = 'doing' ))";
r($programTester->getListBySearchTest('id_desc', 0, $sql)) && p('17:name') && e('项目集17'); // 按照id倒序查看,所有名称包含项目集并且未开始的第一个项目集
r($programTester->getListBySearchTest('id_asc', 0, $sql)) && p('1:name') && e('项目集1'); // 按照id正序查看,所有名称包含项目集并且进行中的第一个项目集
r($programTester->getListBySearchTest('id_asc', 1)) && p('1:name') && e('项目集1'); // 按照id正序查看,符合搜索条件id=1,的第一个项目集
+32 -13
View File
@@ -1,27 +1,46 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
su('admin');
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
$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);
zdTable('user')->gen(5);
$stakeholder = zdTable('stakeholder');
$stakeholder->objectID->range('1,2');
$stakeholder->objectType->range('program');
$stakeholder->type->range('inside');
$stakeholder->user->range('admin,user1,user2');
$stakeholder->gen(3);
su('admin');
/**
title=测试 programModel::getStakeholders();
cid=1
pid=1
获取干系人数量 >> 3
获取干系人数量 >> 3
id倒序排,获取第一个干系人真实姓名 >> 测试17
id正序排,获取第一个干系人真实姓名 >> 测试19
获取干系人数量 >> 2
获取干系人数量 >> 1
id倒序排,获取第一个干系人真实姓名 >> 测试2
id正序排,获取第一个干系人真实姓名 >> 用户1
*/
global $tester;
$tester->loadModel('program');
$stakeholders1 = $tester->program->getStakeholders(2, 'id_desc');
$stakeholders2 = $tester->program->getStakeholders(2, 'id_asc');
$programTester = new programTest();
$stakeholders1 = $programTester->getStakeholdersTest(1, 'id_desc');
$stakeholders2 = $programTester->getStakeholdersTest(2, 'id_asc');
r(count($stakeholders1)) && p() && e('3'); // 获取干系人数量
r(count($stakeholders2)) && p() && e('3'); // 获取干系人数量
r($stakeholders1) && p('0:realname') && e('测试17'); // id倒序排,获取第一个干系人真实姓名
r($stakeholders2) && p('0:realname') && e('测试19'); // id正序排,获取第一个干系人真实姓名
r(count($stakeholders1)) && p() && e('2'); // 获取干系人数量
r(count($stakeholders2)) && p() && e('1'); // 获取干系人数量
r($stakeholders1) && p('0:realname') && e('测试2'); // id倒序排,获取第一个干系人真实姓名
r($stakeholders2) && p('0:realname') && e('用户1'); // id正序排,获取第一个干系人真实姓名
@@ -1,6 +1,27 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
$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);
zdTable('user')->gen(5);
$stakeholder = zdTable('stakeholder');
$stakeholder->objectID->range('1,2');
$stakeholder->objectType->range('program');
$stakeholder->type->range('inside');
$stakeholder->user->range('admin,user1,user2');
$stakeholder->gen(3);
su('admin');
/**
@@ -9,25 +30,19 @@ title=测试 programModel::getStakeholdersByPrograms();
cid=1
pid=1
获取项目集2的干系人名单 >> user19
获取项目集2的干系人名单 >> user18
获取项目集2的干系人名单 >> user17
获取项目集2和项目集3的干系人名单 >> user19
获取项目集2和项目集3的干系人名单 >> user18
获取项目集2和项目集3的干系人名单 >> user17
获取项目集2的干系人个数 >> 3
获取项目集2、3的干系人个数 >> 6
获取项目集1的干系人名单 >> admin
获取项目集2的干系人名单 >> user1
获取项目集1和项目集2的干系人名单 >> admin
获取项目集1的干系人个数 >> 2
获取项目集1、2的干系人个数 >> 3
*/
global $tester;
$tester->loadModel('program');
r($tester->program->getStakeholdersByPrograms('2')) && p('0:account') && e('user19'); // 获取项目集2的干系人名单
r($tester->program->getStakeholdersByPrograms('2')) && p('1:account') && e('user18'); // 获取项目集2的干系人名单
r($tester->program->getStakeholdersByPrograms('2')) && p('2:account') && e('user17'); // 获取项目集2的干系人名单
r($tester->program->getStakeholdersByPrograms('2,3')) && p('0:account') && e('user19'); // 获取项目集2和项目集3的干系人名单
r($tester->program->getStakeholdersByPrograms('2,3')) && p('1:account') && e('user18'); // 获取项目集2和项目集3的干系人名单
r($tester->program->getStakeholdersByPrograms('2,3')) && p('2:account') && e('user17'); // 获取项目集2和项目集3的干系人名单
r(count($tester->program->getStakeholdersByPrograms('2'))) && p('') && e('3'); // 获取项目集2的干系人个数
r(count($tester->program->getStakeholdersByPrograms('2,3'))) && p('') && e('6'); // 获取项目集2、3的干系人个数
r($tester->program->getStakeholdersByPrograms('1')) && p('0:account') && e('admin'); // 获取项目集1的干系人名单
r($tester->program->getStakeholdersByPrograms('2')) && p('0:account') && e('user1'); // 获取项目集2的干系人名单
r($tester->program->getStakeholdersByPrograms('1,2')) && p('0:account') && e('admin'); // 获取项目集1和项目集2的干系人名单
r(count($tester->program->getStakeholdersByPrograms('1'))) && p('') && e('2'); // 获取项目集1的干系人个数
r(count($tester->program->getStakeholdersByPrograms('1,2'))) && p('') && e('3'); // 获取项目集1、2的干系人个数
+33
View File
@@ -0,0 +1,33 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
$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);
su('admin');
/**
title=测试 programModel::saveState();
cid=1
pid=1
查看传入空项目集返回的下拉菜单 >> 所有项目集
查看传入id=1的项目集返回的下拉菜单 >> 父项目集1
*/
$programTester = new programTest();
$switcher1 = $programTester->getSwitcherTest(0);
$switcher2 = $programTester->getSwitcherTest(1);
r(strip_tags($switcher1)) && p() && e('所有项目集'); // 查看传入空项目集返回的下拉菜单
r(strip_tags($switcher2)) && p() && e('父项目集1'); // 查看传入id=1的项目集返回的下拉菜单
+7 -4
View File
@@ -2,7 +2,6 @@
<?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');
@@ -22,11 +21,15 @@ $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' => 'account1', 'range' => 'admin,user{4}'),
array('field' => 'account2', 'range' => '[],1-4'),
));
$team->gen(5);
zdTable('user')->gen(5);
su('admin');
/**
title=测试 programModel::getTeamMemberPairs();
@@ -36,7 +39,7 @@ pid=1
获取项目集1下所有团队成员数量 >> 5
获取项目集2下所有团队成员数量 >> 2
获取项目集1下所有团队成员真实姓名 >> A:admin
获取项目集2下所有团队成员真实姓名 >> T:测试2
获取项目集2下所有团队成员真实姓名 >> U:测试2
*/
@@ -47,4 +50,4 @@ $teams2 = $programTester->getTeamMemberPairsTest(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下所有团队成员真实姓名
r($teams2) && p('user2') && e('U:测试2'); // 获取项目集2下所有团队成员真实姓名
+20
View File
@@ -0,0 +1,20 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
/**
title=测试 programModel::getTopByPath();
cid=1
pid=1
获取顶级项目集的顶级id >> 1
获取子项目集的顶级父项目集 >> 2
*/
global $tester;
$tester->loadModel('program');
r($tester->program->getTopByPath(',1,')) && p() && e('1'); // 获取顶级项目集的顶级id
r($tester->program->getTopByPath(',2,3,')) && p() && e('2'); // 获取子项目集的顶级父项目集
+44
View File
@@ -0,0 +1,44 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
$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);
su('admin');
/**
title=测试 programModel::saveState();
cid=1
pid=1
项目集存在且正常访问 >> html
项目集不存在 >> 0
项目集存在,但不在可以查看的项目集列表 >> 1
项目集存在,且在可以查看的项目集列表 >> 2
项目集不存在,且有可以查看的项目集列表 >> 2
*/
$programTester = new programTest();
ob_start();
$programTester->saveStateTest(1);
$program1 = ob_get_clean();
$program2 = $programTester->saveStateTest(0);
$program3 = $programTester->saveStateTest(1, array(1 => ''));
$program4 = $programTester->saveStateTest(3, array(2 => ''));
$program5 = $programTester->saveStateTest(0, array(2 => ''));
r(substr($program1, 1, 4)) && p() && e('html'); // 项目集存在且正常访问
r($program2) && p() && e('0'); // 项目集不存在
r($program3) && p() && e('1'); // 项目集存在,但不在可以查看的项目集列表
r($program4) && p() && e('2'); // 项目集存在,且在可以查看的项目集列表
r($program5) && p() && e('2'); // 项目集不存在,且有可以查看的项目集列表
+32
View File
@@ -0,0 +1,32 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/program.class.php';
$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);
su('admin');
/**
title=测试 programModel::setMenu();
cid=1
pid=1
项目集存在的情况 >> 项目集1
项目集不存在的情况 >> 0
*/
$programTester = new programTest();
r($programTester->setMenuTest(1)) && p() && e('项目集1'); // 项目集存在的情况
r($programTester->setMenuTest(3)) && p() && e('0'); // 项目集不存在的情况