+ Move unit test from test directory to each module.

This commit is contained in:
zhouxin
2023-04-24 02:16:47 +00:00
parent 8b32e6592a
commit 4efea42989
1671 changed files with 83077 additions and 0 deletions
@@ -0,0 +1,21 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
/**
title=测试 programModel::accessDenied();
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'); // 权限不足跳转
@@ -0,0 +1,33 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/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'); // 项目集存在
+51
View File
@@ -0,0 +1,51 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
/**
title=测试 programModel::create();
cid=1
pid=1
传入任务数组,返回计算后的总消耗 >> 13
传入任务数组,返回计算后的总预计 >> 15
传入任务数组,返回计算后的总剩余 >> 7
传入任务数组,返回计算后的总工时 >> 20
传入任务数组,返回计算后的进度 >> 65
*/
global $tester;
$tester->loadModel('program');
$task1 = new stdclass();
$task1->consumed = 2;
$task1->left = 2;
$task1->estimate = 2;
$task1->status = 'active';
$task2 = new stdclass();
$task2->consumed = 4;
$task2->left = 5;
$task2->estimate = 6;
$task2->status = 'active';
$task3 = new stdclass();
$task3->consumed = 7;
$task3->left = 7;
$task3->estimate = 7;
$task3->status = 'closed';
$tasks[] = $task1;
$tasks[] = $task2;
$tasks[] = $task3;
$projectTasks[1] = $tasks;
$hours = $tester->program->computeProgress($projectTasks);
r($hours) && p('1:totalConsumed') && e('13'); // 传入任务数组,返回计算后的总消耗
r($hours) && p('1:totalEstimate') && e('15'); // 传入任务数组,返回计算后的总预计
r($hours) && p('1:totalLeft') && e('7'); // 传入任务数组,返回计算后的总剩余
r($hours) && p('1:totalReal') && e('20'); // 传入任务数组,返回计算后的总工时
r($hours) && p('1:progress') && e('65'); // 传入任务数组,返回计算后的进度
+62
View File
@@ -0,0 +1,62 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/program.class.php';
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-12』。
*/
$programTester = new programTest();
$data = array(
'parent' => 0,
'name' => '测试新增项目集一',
'budget' => '',
'budgetUnit' => 'CNY',
'begin' => '2022-01-12',
'end' => '2022-02-12',
'desc' => '测试项目集描述',
'acl' => 'private',
'whitelist' => ''
);
$normalProgram = $data;
$emptyNameProgram = $data;
$emptyNameProgram['name'] = '';
$emptyBeginProgram = $data;
$emptyBeginProgram['begin'] = '';
$emptyEndProgram = $data;
$emptyEndProgram['end'] = '';
$beginGtEndProgram = $data;
$beginGtEndProgram['end'] = '2022-01-10';
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』。
@@ -0,0 +1,20 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/program.class.php';
/**
title=测试 programModel::createDefaultProgram();
cid=1
pid=1
创建默认项目集 >> 1
*/
$programTester = new programTest();
$result = $programTester->createDefaultProgramTest();
r($result) && p('') && e('1'); // 创建默认项目集
+32
View File
@@ -0,0 +1,32 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/program.class.php';
$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::createStakeholder();
cid=1
pid=1
创建id=1的项目集的干系人并查看数量。 >> 2
创建id=1的项目集的干系人dev1,dev2并查看Account。 >> dev1;dev2
*/
$programTester = new programTest();
$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('dev1;dev2'); // 创建id=1的项目集的干系人dev1,dev2并查看Account。
+33
View File
@@ -0,0 +1,33 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/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
查看项目集1的所有父项目集的预算剩余 >> 900000
查看项目集2的所有父项目集的预算剩余 >> 899900
*/
$programTester = new programTest();
$result1 = $programTester->getBudgetLeftTest(1);
$result2 = $programTester->getBudgetLeftTest(2);
r($result1) && p() && e('900000'); // 查看项目集1的所有父项目集的预算剩余
r($result2) && p() && e('899900'); // 查看项目集2的所有父项目集的预算剩余
+36
View File
@@ -0,0 +1,36 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/program.class.php';
su('admin');
$program = zdTable('project');
$program->id->range('1-10');
$program->type->range('program');
$program->name->setFields(array(
array('field' => 'name1', 'range' => '项目集'),
array('field' => 'name2', 'range' => '1-10')
));
$program->gen(5);
/**
title=测试 programModel::getById();
cid=1
pid=1
通过id字段获取id=1的项目集并验证它的name。 >> 项目集1
通过id字段获取id=1000的项目集,返回空 >> 0
通过id字段获取id=0的项目集,返回空 >> 0
*/
$programTester = new programTest();
$program1 = $programTester->getByIDTest(1);
$program2 = $programTester->getByIDTest(1000);
$program3 = $programTester->getByIDTest(0);
r($program1) && p('name') && e('项目集1'); // 通过id字段获取id=1的项目集并验证它的name。
r($program2) && p() && e('0'); // 通过id字段获取id=1000的项目集,返回空
r($program3) && p() && e('0'); // 通过id字段获取id=0的项目集,返回空
+30
View File
@@ -0,0 +1,30 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/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的子项目集个数 >> 2
*/
$programTester = new programTest();
r($programTester->getChildrenTest(1)) && p() && e('2'); // 通过id查找id=1的子项目集个数
+38
View File
@@ -0,0 +1,38 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/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();
cid=1
pid=1
获取admin参与的项目集数量 >> 2
获取test1参与的项目集数量 >> 1
获取admin参与的项目集ID >> 1
获取test1参与的项目集ID >> 2
*/
$programTester = new programTest();
$adminPrograms = $programTester->getInvolvedProgramsTest('admin');
$test1Programs = $programTester->getInvolvedProgramsTest('test1');
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
+37
View File
@@ -0,0 +1,37 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/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();
cid=1
pid=1
查看当前用户负责的项目集看板数量 >> 2
查看当前用户其他的项目集看板数量 >> 1
查看当前用户其他的项目集看板详情 >> 项目集2
*/
$programTester = new programTest();
$kanbanGroup = $programTester->getKanbanGroupTest();
r(count($kanbanGroup['my'])) && p('') && e('2'); //查看当前用户负责的项目集看板数量
r(count($kanbanGroup['others'])) && p('') && e('1'); //查看当前用户其他的项目集看板数量
r($kanbanGroup['others']) && p('0:name') && e('项目集2'); //查看当前用户其他的项目集看板详情
+25
View File
@@ -0,0 +1,25 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/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'); // 非项目集页面跳转项目集列表
+60
View File
@@ -0,0 +1,60 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/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
查看所有项目和项目集的个数 >> 20
查看分页后项目集和项目的个数 >> 10
查看所有'closed'的项目和项目集的个数 >> 5
查看所有'suspended'的项目和项目集的个数 >> 5
按照项目和项目集名称倒序获取第一个ID >> 9
按照ID正序获取项目和项目集列表第一个ID >> 1
获取顶级项目集个数 >> 20
获取分页后顶级项目集个数 >> 10
获取所有项目集个数 >> 20
*/
global $tester;
$programTester = new programTest();
$tester->app->loadClass('pager', $static = true);
$pager = new pager(0, 10, 1);
$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('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'); // 获取所有项目集个数
@@ -0,0 +1,49 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/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,的第一个项目集
+40
View File
@@ -0,0 +1,40 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/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);
/**
title=测试 programModel::getPairs();
cid=1
pid=1
获取项目集个数 >> 15
获取所有项目集个数 >> 15
获取按照id正序的第一个项目集名称 >> 项目集1
*/
$programTester = new programTest();
$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正序的第一个项目集名称
+44
View File
@@ -0,0 +1,44 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/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);
/**
title=测试 programModel::getPairsByList();
cid=1
pid=1
通过字符串'1'获取项目集名称 >> 项目集1
通过字符串'1,2,3'获取项目集名称 >> 项目集1,项目集2,项目集3
通过数组array(1)获取项目集名称 >> 项目集1
通过数组array(1,2,3)获取项目集名称 >> 项目集1,项目集2,项目集3
通过id为空获取项目集名称 >> 0
通过id=0获取项目集名称 >> 0
通过id=11获取项目集名称 >> 0
*/
$programTester = new programTest();
$programIdList = array('1', '1,2,3', array(1), array(1,2,3), '', '0', '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获取项目集名称
+49
View File
@@ -0,0 +1,49 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/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);
/**
title=测试 programModel::getParentPairs();
cid=1
pid=1
获取所有父项目集的数量 >> 5
获取瀑布类型父项目集的数量 >> 1
获取ID为1的父项目集的名称 >> /项目集1
获取父项目集的名称显示根目录 >> 0
获取ID为1的父项目集的名称不显示根目录 >> 项目集1
*/
$programTester = new programTest();
$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(key($program1)) && p('0') && e('0'); // 获取父项目集的名称显示根目录
r(array_shift($program3)) && p() && e('项目集1'); // 获取ID为1的父项目集的名称不显示根目录
+42
View File
@@ -0,0 +1,42 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/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();
cid=1
pid=1
获取父项目集的负责人数量 >> 2
获取父项目集的负责人account >> admin
获取父项目集的负责人account >> test1
*/
$programTester = new programTest();
$programIdList = array(5, 6, 7);
$parentPM = $programTester->getParentPMTest($programIdList);
r(count($parentPM)) && p() && e('2'); // 获取父项目集的负责人数量
r($parentPM) && p('6:admin') && e('admin'); // 获取父项目集的负责人account
r($parentPM) && p('7:test1') && e('test1'); // 获取父项目集的负责人account
+49
View File
@@ -0,0 +1,49 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/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);
/**
title=测试 programModel::getProductPairs();
cid=1
pid=1
获取项目集1下的所有产品数量 >> 10
根据项目集ID获取关联产品名字 >> 产品2
获取项目集1下的未关闭的产品数量 >> 5
根据项目或项目集ID获取关联产品详情 >> 产品3
*/
$programTester = new programTest();
$products1 = $programTester->getProductPairsTest(1, 'assign', 'all');
$products2 = $programTester->getProductPairsTest(1, 'assign', 'noclosed');
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获取关联产品详情
+51
View File
@@ -0,0 +1,51 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/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
获取项目和项目集的个数 >> 5
获取id=2的项目的进度 >> 25
获取id=4的项目集的进度 >> 43
*/
$programTester = new programTest();
$progressList = $programTester->getProgressListTest();
r(count($progressList)) && p() && e('5'); // 获取项目和项目集的个数
r($progressList) && p('2') && e('25'); // 获取id=2的项目的进度
r($progressList) && p('4') && e('43'); // 获取id=4的项目集的进度
+62
View File
@@ -0,0 +1,62 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/program.class.php';
$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);
$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,user{4}'),
array('field' => 'account2', 'range' => '[],1-4'),
));
$team->gen(5);
zdTable('user')->gen(5);
su('admin');
/**
title=测试 programModel::getProjectList();
cid=1
pid=1
获取所有项目列表数量 >> 3
获取未完成项目列表数量 >> 2
带项目集名称的项目列表数量 >> 2
获取我参与的项目列表数量 >> 1
不带项目集名称的项目名称 >> 项目2
带项目集名称的项目名称 >> 项目集2/项目3
我参与的项目的名称 >> 项目集1/项目1
*/
$programTester = new programTest();
$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('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'); // 我参与的项目的名称
+40
View File
@@ -0,0 +1,40 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/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
查看当前项目集下所有未完成的项目的个数 >> 1
查看当前项目集下所有未完成的项目的个数 >> 1
查看当前项目集下所有未完成的项目按照id倒序排的第一个项目集信息 >> 3,项目1
查看当前项目集下所有未完成的项目按照id正序排的第一个项目集信息 >> 5,项目3
*/
$programTester = new programTest();
$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正序排的第一个项目集信息
+46
View File
@@ -0,0 +1,46 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/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
获取干系人数量 >> 2
获取干系人数量 >> 1
id倒序排,获取第一个干系人真实姓名 >> 用户2
id正序排,获取第一个干系人真实姓名 >> 用户1
*/
$programTester = new programTest();
$stakeholders1 = $programTester->getStakeholdersTest(1, 'id_desc');
$stakeholders2 = $programTester->getStakeholdersTest(2, 'id_asc');
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正序排,获取第一个干系人真实姓名
+48
View File
@@ -0,0 +1,48 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/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::getStakeholdersByPrograms();
cid=1
pid=1
获取项目集1的干系人名单 >> admin
获取项目集2的干系人名单 >> user1
获取项目集1和项目集2的干系人名单 >> admin
获取项目集1的干系人个数 >> 2
获取项目集1、2的干系人个数 >> 3
*/
global $tester;
$tester->loadModel('program');
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(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/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的项目集返回的下拉菜单
+53
View File
@@ -0,0 +1,53 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/program.class.php';
$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,user{4}'),
array('field' => 'account2', 'range' => '[],1-4'),
));
$team->gen(5);
zdTable('user')->gen(5);
su('admin');
/**
title=测试 programModel::getTeamMemberPairs();
cid=1
pid=1
获取项目集1下所有团队成员数量 >> 5
获取项目集2下所有团队成员数量 >> 2
获取项目集1下所有团队成员真实姓名 >> A:admin
获取项目集2下所有团队成员真实姓名 >> U:用户2
*/
$programTester = new programTest();
$teams1 = $programTester->getTeamMemberPairsTest(1);
$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('user2') && e('U:用户2'); // 获取项目集2下所有团队成员真实姓名
+24
View File
@@ -0,0 +1,24 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
su('admin');
/**
title=测试 programModel::getTopByID();
cid=1
pid=1
获取项目集1最上级的项目集id >> 1
获取项目集1000最上级的项目集id >> 0
*/
global $tester;
$tester->loadModel('program');
$top1 = $tester->program->getTopByID(1);
$top1000 = $tester->program->getTopByID(1000);
r($top1) && p() && e('1'); //获取项目集1最上级的项目集id
r($top1000) && p() && e('0'); //获取项目集1000最上级的项目集id
@@ -0,0 +1,20 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/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'); // 获取子项目集的顶级父项目集
+35
View File
@@ -0,0 +1,35 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/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
获取系统中所有顶级项目集数量 >> 2
获取系统中所有未关闭的顶级项目集数量 >> 1
获取系统中所有顶级项目集数量 >> 2
*/
$programTester = new programTest();
r(count($programTester->getTopPairsTest())) && p() && e('2'); // 获取系统中所有顶级项目集数量
r(count($programTester->getTopPairsTest('', 'noclosed'))) && p() && e('1'); // 获取系统中所有未关闭的顶级项目集数量
r(count($programTester->getTopPairsTest('', '', true))) && p() && e('2'); // 获取系统中所有顶级项目集数量
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
su('admin');
/**
title=测试 programModel::getTopPairs();
cid=1
pid=1
传入一个path,返回最顶级path >> 2
传入一个path,返回最顶级path >> 100
*/
global $tester;
$tester->loadModel('program');
$path1 = ',2,3,4,';
$path2 = '100,101';
r($tester->program->getTopByPath($path1)) && p() && e('2'); // 传入一个path,返回最顶级path
r($tester->program->getTopByPath($path2)) && p() && e('100'); // 传入一个path,返回最顶级path
+31
View File
@@ -0,0 +1,31 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/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::getTreeMenu();
cid=1
pid=1
查看返回的字符个数 >> 项目集1项目集2
*/
$programTester = new programTest();
$programs1 = $programTester->getTreeMenuTest(1);
$programs1 = preg_replace('/\s*/', '', strip_tags($programs1));
r($programs1) && p() && e('项目集1项目集2'); // 查看返回的字符个数
+32
View File
@@ -0,0 +1,32 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/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下未完成的项目和项目集数量 >> 2
获取项目集2下未完成的项目和项目集数量 >> 1
*/
$programTester = new programTest();
r($programTester->hasUnfinishedTest(1)) && p() && e('2'); // 获取项目集1下未完成的项目和项目集数量
r($programTester->hasUnfinishedTest(2)) && p() && e('1'); // 获取项目集2下未完成的项目和项目集数量
+43
View File
@@ -0,0 +1,43 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/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);
/**
title=测试 programModel::createStakeholder();
cid=1
pid=1
传入项目集1,动作为closed,判断是否可点击 >> 1
传入项目集1,动作为activate,判断是否可点击 >> 0
传入项目集1,动作为suspend,判断是否可点击 >> 1
传入项目集2,动作为closed,判断是否可点击 >> 1
传入项目集2,动作为activate,判断是否可点击 >> 0
传入项目集2,动作为activate,判断是否可点击 >> 1
*/
$programTester = new programTest();
$program1 = $programTester->getByIDTest(1);
$program2 = $programTester->getByIDTest(2);
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,判断是否可点击
+31
View File
@@ -0,0 +1,31 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.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::processNode();
cid=1
pid=1
更新项目集层级和路径 >> 1
*/
global $tester;
$tester->loadModel('program');
r($tester->program->processNode(1, 2, 1, 1)) && p() && e('1'); // 更新项目集层级和路径
+44
View File
@@ -0,0 +1,44 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/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(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/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'); // 项目集不存在的情况
+34
View File
@@ -0,0 +1,34 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/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 >> ,10,
设置之后的项目集的path >> ,1,10,
*/
$programTester = new programTest();
$before = $programTester->getByIDTest(10);
$after = $programTester->setTreePathTest(10);
r($before) && p('path') && e(',10,'); // 设置之前的项目集的path
r($after) && p('path') && e(',1,10,'); // 设置之后的项目集的path
+64
View File
@@ -0,0 +1,64 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . "/test/lib/init.php";
include dirname(__FILE__, 2) . '/program.class.php';
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
正常更新项目集的情况 >> 测试更新项目集
更新项目集名称为空时 >> 『项目集名称』不能为空。
当计划开始为空时更新项目集信息 >> 『计划开始』不能为空。
当计划完成为空时更新项目集信息 >> 『计划完成』不能为空。
更新未开始的项目集实际开始时间 >> doing
*/
$programTester = new programTest();
$data = array(
'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')
);
$normalProgram = $data;
$emptyTitleProgram = $data;
$emptyTitleProgram['name'] = '';
$emptyBeginProgram = $data;
$emptyBeginProgram['begin'] = '';
$emptyEndProgram = $data;
$emptyEndProgram['end'] = '';
$realBeganProgram = $data;
$realBeganProgram['realBegan'] = '2020-11-10';
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'); // 更新未开始的项目集实际开始时间