+
createLink('mr', 'browse'), ' ' . $lang->goback, '', "class='btn btn-secondary'"); ?>
+
id ?>
title; ?>
diff --git a/test/class/stakeholder.class.php b/test/class/stakeholder.class.php
new file mode 100644
index 0000000000..22a70a6087
--- /dev/null
+++ b/test/class/stakeholder.class.php
@@ -0,0 +1,113 @@
+objectModel = $tester->loadModel('stakeholder');
+ }
+
+ /**
+ * Function create test by stakeholder
+ *
+ * @param int $objectID
+ * @param array $param
+ * @access public
+ * @return array
+ */
+ public function createTest($objectID, $param = array())
+ {
+ $createFields = array('from' => '', 'key' => '', 'user' => '', 'name' => '', 'phone' => '', 'qq' => '', 'weixin' => '',
+ 'email' => '', 'company' => '', 'nature' => '', 'analysis' => '', 'strategy' => '');
+
+ foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
+ foreach($param as $key => $value) $_POST[$key] = $value;
+
+ $objectID = $this->objectModel->create($objectID);
+
+ unset($_POST);
+
+ if(dao::isError()) return dao::getError();
+
+ $objects = $this->objectModel->getByID($objectID);
+
+ return $objects;
+ }
+
+ /**
+ * Function batchCreate test by stakeholder
+ *
+ * @param int $projectID
+ * @param array $param
+ * @access public
+ * @return array
+ */
+ public function batchCreateTest($projectID, $param = array())
+ {
+ $realnames = array();
+ $accounts = array();
+
+ $createFields = array('realnames' => $realnames, 'accounts' => $accounts);
+
+ foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
+ foreach($param as $key => $value) $_POST[$key] = $value;
+
+ $objects = $this->objectModel->batchCreate($projectID);
+
+ unset($_POST);
+
+ if(dao::isError()) return dao::getError();
+
+ return $objects;
+ }
+
+ /**
+ * Function edit test by stakeholder
+ *
+ * @param int $stakeholderID
+ * @param array $param
+ * @access public
+ * @return array
+ */
+ public function editTest($stakeholderID, $param = array())
+ {
+ $createFields = array('key' => '', 'nature' => '', 'analysis' => '', 'strategy' => '');
+
+ foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
+ foreach($param as $key => $value) $_POST[$key] = $value;
+
+ $objects = $this->objectModel->edit($stakeholderID);
+
+ unset($_POST);
+
+ if(dao::isError()) return dao::getError();
+
+ return $objects;
+ }
+
+ /**
+ * Function communicate test by stakeholder
+ *
+ * @param int $stakeholderID
+ * @param array $param
+ * @access public
+ * @return array
+ */
+ public function communicateTest($stakeholderID, $param = array())
+ {
+ global $tester;
+ $createFields = array('comment' => '');
+
+ foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue;
+ foreach($param as $key => $value) $_POST[$key] = $value;
+
+ $this->objectModel->communicate($stakeholderID);
+
+ unset($_POST);
+
+ if(dao::isError()) return dao::getError();
+
+ $objects = $tester->dao->select('*')->from(TABLE_ACTION)->where('objectID')->eq($stakeholderID)->andwhere('objectType')->eq('stakeholder')->fetchAll();
+ return $objects;
+ }
+}
diff --git a/test/data/expect.yaml b/test/data/expect.yaml
new file mode 100644
index 0000000000..3e0b3c61d6
--- /dev/null
+++ b/test/data/expect.yaml
@@ -0,0 +1,25 @@
+title: table zt_expect
+desc: ""
+author: automated export
+version: "1.0"
+fields:
+ - field: id
+ range: 1-1000
+ - field: userID
+ range: 32-301
+ - field: project
+ range: 11-100{3}
+ - field: expect
+ range: 1-1000
+ prefix: "期望内容"
+ - field: progress
+ range: 1-1000
+ prefix: "达成进展"
+ - field: createdBy
+ range: admin
+ - field: createdDate
+ range: "(M)-(w):60s"
+ type: timestamp
+ format: "YYYY-MM-DD"
+ - field: deleted
+ range: 0
diff --git a/test/data/stakeholder.yaml b/test/data/stakeholder.yaml
index b3dbd12ac3..3c524b169b 100644
--- a/test/data/stakeholder.yaml
+++ b/test/data/stakeholder.yaml
@@ -1,8 +1,12 @@
title: zt_stakeholder
-desc: 干系人表
+desc: 干系人表
version: 1.0
fields:
- - field: objectID
+ - field: objectID
range: 11-100
- - field: objectType
+ - field: objectType
range: project
+ - field: key
+ range: 1
+ - field: user
+ range: admin
diff --git a/test/data/zentao/config.php b/test/data/zentao/config.php
index 079e5eccb0..86aa33d6d8 100644
--- a/test/data/zentao/config.php
+++ b/test/data/zentao/config.php
@@ -84,6 +84,7 @@ $builder->kanbancellproject = array('rows' => 4860, 'extends' => array('kanban
$builder->team = array('rows' => 400, 'extends' => array('team'));
$builder->teamtask = array('rows' => 20, 'extends' => array('team', 'teamtask'));
$builder->stakeholder = array('rows' => 1, 'extends' => array('stakeholder'));
+$builder->expect = array('rows' => 270, 'extends' => array('expect'));
$builder->stageson = array('rows' => 30, 'extends' => array('project', 'executionson'));
$builder->doclib = array('rows' => 900, 'extends' => array('doclib'));
diff --git a/test/data/zentao/processor.php b/test/data/zentao/processor.php
index 18839c9dd7..59a6710eee 100644
--- a/test/data/zentao/processor.php
+++ b/test/data/zentao/processor.php
@@ -328,6 +328,8 @@ class Processor
$this->dao->insert(TABLE_STAKEHOLDER)->data($data)->exec();
}
}
+ $this->dao->update(TABLE_STAKEHOLDER)->set('`type`')->eq('inside')->where('id')->le('300')->exec();
+ $this->dao->update(TABLE_STAKEHOLDER)->set('`type`')->eq('outside')->set('`user`')->eq('outside1')->where('id')->eq('301')->exec();
}
/**
diff --git a/test/model/stakeholder/batchcreate.php b/test/model/stakeholder/batchcreate.php
new file mode 100755
index 0000000000..dad0615100
--- /dev/null
+++ b/test/model/stakeholder/batchcreate.php
@@ -0,0 +1,32 @@
+#!/usr/bin/env php
+batchCreate();
+cid=1
+pid=1
+
+ >> 6
+ >> 6
+ >> 6
+ >> 6
+
+*/
+$projectIDList = array('11', '31', '61');
+$realnames = array('开发38', '开发29', '开发30');
+$accounts = array('test28', 'test29', 'test30', 'dev1', 'dev13', 'dev12');
+
+$normalStakeholder = array('realnames' => $realnames, 'accounts' => $accounts);
+$noRealnames = array('accounts' => $accounts);
+
+$stakeholder = new stakeholderTest();
+r(count($stakeholder->batchCreateTest($projectIDList[0], $normalStakeholder))) && p() && e('6');
+r(count($stakeholder->batchCreateTest($projectIDList[1], $normalStakeholder))) && p() && e('6');
+r(count($stakeholder->batchCreateTest($projectIDList[2], $normalStakeholder))) && p() && e('6');
+r(count($stakeholder->batchCreateTest($projectIDList[0], $noRealnames))) && p() && e('6');
+
+system("./ztest init");
\ No newline at end of file
diff --git a/test/model/stakeholder/communicate.php b/test/model/stakeholder/communicate.php
new file mode 100755
index 0000000000..8af55a8ecc
--- /dev/null
+++ b/test/model/stakeholder/communicate.php
@@ -0,0 +1,25 @@
+#!/usr/bin/env php
+communicate();
+cid=1
+pid=1
+
+ >> 沟通内容
+ >> 『对象ID』应当是数字。
+
+*/
+$userIDList = array('10', '', '17');
+$comment = array('comment' => '沟通内容');
+
+$stakeholder = new stakeholderTest();
+r($stakeholder->communicateTest($userIDList[0], $comment)) && p('0:comment') && e('沟通内容');
+r($stakeholder->communicateTest($userIDList[2])) && p('0:comment') && e('');
+r($stakeholder->communicateTest($userIDList[1], $comment)) && p('objectID:0') && e('『对象ID』应当是数字。');
+
+system("./ztest init");
\ No newline at end of file
diff --git a/test/model/stakeholder/create.php b/test/model/stakeholder/create.php
new file mode 100755
index 0000000000..5ac61b74dc
--- /dev/null
+++ b/test/model/stakeholder/create.php
@@ -0,0 +1,47 @@
+#!/usr/bin/env php
+create();
+cid=1
+pid=1
+
+项目集添加干系人 >> 1
+项目添加干系人 >> dev17
+执行添加干系人 >> outside
+输入错误的from >> test
+输入不存在的用户名 >> autotest
+不输入用户 >> 用户不能为空!
+输入错误的key值 >> 『key』不符合格式,应当为:『/0|1/』。
+创建相同的干系人 >> 『用户』已经有『po22』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。
+
+*/
+$objectIDList = array('1', '11', '101');
+
+$froms = array('team', 'company', 'outside', 'test');
+$key = array('0', '1');
+$user = array('po22', 'dev17', 'outside1', 'autotest', 'dev27');
+
+$teamStakeholder = array('from' => $froms[0], 'key' => $key[0], 'user' => $user[0], 'nature' => '性格特征', 'analysis' => '影响分析', 'strategy' => '应对策略');
+$companyStakeholder = array('from' => $froms[1], 'key' => $key[1], 'user' => $user[1], 'nature' => '性格特征', 'analysis' => '影响分析', 'strategy' => '应对策略');
+$outsideStakeholder = array('from' => $froms[2], 'key' => $key[0], 'user' => $user[2], 'nature' => '性格特征', 'analysis' => '影响分析', 'strategy' => '应对策略');
+$errorFrom = array('from' => $froms[3], 'key' => $key[0], 'user' => $user[0], 'nature' => '性格特征', 'analysis' => '影响分析', 'strategy' => '应对策略');
+$errorUser = array('from' => $froms[0], 'key' => $key[0], 'user' => $user[3], 'nature' => '性格特征', 'analysis' => '影响分析', 'strategy' => '应对策略');
+$noUser = array('from' => $froms[0], 'key' => $key[0], 'nature' => '性格特征', 'analysis' => '影响分析', 'strategy' => '应对策略');
+$noKey = array('from' => $froms[0], 'user' => $user[3], 'nature' => '性格特征', 'analysis' => '影响分析', 'strategy' => '应对策略');
+
+$stakeholder = new stakeholderTest();
+r($stakeholder->createTest($objectIDList[0],$teamStakeholder)) && p('objectID') && e('1'); //项目集添加干系人
+r($stakeholder->createTest($objectIDList[1],$companyStakeholder)) && p('user') && e('dev17'); //项目添加干系人
+r($stakeholder->createTest($objectIDList[2],$outsideStakeholder)) && p('type') && e('outside'); //执行添加干系人
+r($stakeholder->createTest($objectIDList[2],$errorFrom)) && p('from') && e('test'); //输入错误的from
+r($stakeholder->createTest($objectIDList[0],$errorUser)) && p('user') && e('autotest'); //输入不存在的用户名
+r($stakeholder->createTest($objectIDList[0],$noUser)[0]) && p() && e('用户不能为空!'); //不输入用户
+r($stakeholder->createTest($objectIDList[2],$noKey)) && p('key:0') && e('『key』不符合格式,应当为:『/0|1/』。');//输入错误的key值
+r($stakeholder->createTest($objectIDList[0],$teamStakeholder)) && p('user:0') && e('『用户』已经有『po22』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。');//创建相同的干系人
+
+system("./ztest init");
diff --git a/test/model/stakeholder/deleteexpect.php.bak b/test/model/stakeholder/deleteexpect.php.bak
new file mode 100644
index 0000000000..61d5e050d5
--- /dev/null
+++ b/test/model/stakeholder/deleteexpect.php.bak
@@ -0,0 +1,17 @@
+#!/usr/bin/env php
+deleteExpect();
+cid=1
+pid=1
+
+*/
+
+$stakeholder = new stakeholderTest();
+
+r($stakeholder->deleteExpectTest()) && p() && e();
\ No newline at end of file
diff --git a/test/model/stakeholder/edit.php b/test/model/stakeholder/edit.php
new file mode 100755
index 0000000000..36c89aaf35
--- /dev/null
+++ b/test/model/stakeholder/edit.php
@@ -0,0 +1,35 @@
+#!/usr/bin/env php
+edit();
+cid=1
+pid=1
+
+修改关键干系人 >> key,0,1
+修改nature >> 0
+修改analysis >> key,1,0
+修改strategy >> 0
+不输入是否关键干系人 >> 『key』不符合格式,应当为:『/0|1/』。
+
+*/
+$stakeholderID = array('7', '17');
+
+$updateKey = array('key' => '1');
+$updateNature = array('key' => '0', 'nature' => '修改nature');
+$updateAnalysis = array('key' => '0', 'analysis' => '修改analysis');
+$updateStrategy = array('key' => '0', 'strategy' => '修改strategy');
+$noKey = array('key' => '');
+
+$stakeholder = new stakeholderTest();
+r($stakeholder->editTest($stakeholderID[0], $updateKey)) && p('0:field,old,new') && e('key,0,1'); //修改关键干系人
+r($stakeholder->editTest($stakeholderID[1], $updateNature)) && p() && e('0'); //修改nature
+r($stakeholder->editTest($stakeholderID[0], $updateAnalysis)) && p('0:field,old,new') && e('key,1,0'); //修改analysis
+r($stakeholder->editTest($stakeholderID[1], $updateStrategy)) && p() && e('0'); //修改strategy
+r($stakeholder->editTest($stakeholderID[0], $noKey)) && p('key:0') && e('『key』不符合格式,应当为:『/0|1/』。');//不输入是否关键干系人
+
+system("./ztest init");
\ No newline at end of file
diff --git a/test/model/stakeholder/editexpect.php.bak b/test/model/stakeholder/editexpect.php.bak
new file mode 100644
index 0000000000..55e50605bd
--- /dev/null
+++ b/test/model/stakeholder/editexpect.php.bak
@@ -0,0 +1,17 @@
+#!/usr/bin/env php
+editExpect();
+cid=1
+pid=1
+
+*/
+
+$stakeholder = new stakeholderTest();
+
+r($stakeholder->editExpectTest()) && p() && e();
\ No newline at end of file
diff --git a/test/model/stakeholder/expect.php.bak b/test/model/stakeholder/expect.php.bak
new file mode 100644
index 0000000000..6dffb3a242
--- /dev/null
+++ b/test/model/stakeholder/expect.php.bak
@@ -0,0 +1,17 @@
+#!/usr/bin/env php
+expect();
+cid=1
+pid=1
+
+*/
+
+$stakeholder = new stakeholderTest();
+
+r($stakeholder->expectTest()) && p() && e();
\ No newline at end of file
diff --git a/test/model/stakeholder/getactivities.php.bak b/test/model/stakeholder/getactivities.php.bak
new file mode 100644
index 0000000000..73d543f91f
--- /dev/null
+++ b/test/model/stakeholder/getactivities.php.bak
@@ -0,0 +1,17 @@
+#!/usr/bin/env php
+getActivities();
+cid=1
+pid=1
+
+*/
+
+$stakeholder = new stakeholderTest();
+
+r($stakeholder->getActivitiesTest()) && p() && e();
\ No newline at end of file
diff --git a/test/model/stakeholder/getbyid.php b/test/model/stakeholder/getbyid.php
new file mode 100755
index 0000000000..1f48834422
--- /dev/null
+++ b/test/model/stakeholder/getbyid.php
@@ -0,0 +1,23 @@
+#!/usr/bin/env php
+getByID();
+cid=1
+pid=1
+
+正常根据id查询干系人 >> 测试59
+查询id不存在的干系人 >> 0
+
+*/
+global $tester;
+$stakeholder = $tester->loadModel('stakeholder');
+
+$stakeholderIDList = array('0', '17');
+
+r($stakeholder->getByID($stakeholderIDList[1])) && p('name') && e('测试59');//正常根据id查询干系人
+r($stakeholder->getByID($stakeholderIDList[0])) && p() && e('0'); //查询id不存在的干系人
\ No newline at end of file
diff --git a/test/model/stakeholder/getexpectbyid.php b/test/model/stakeholder/getexpectbyid.php
new file mode 100755
index 0000000000..48dc144a44
--- /dev/null
+++ b/test/model/stakeholder/getexpectbyid.php
@@ -0,0 +1,23 @@
+#!/usr/bin/env php
+getExpectByID();
+cid=1
+pid=1
+
+查询不存在的期望数据 >> 0
+正常查询期望数据 >> 期望内容17
+
+*/
+global $tester;
+$stakeholder = $tester->loadModel('stakeholder');
+
+$expectIDList = array('0', '17');
+
+r($stakeholder->getExpectByID($expectIDList[0])) && p() && e('0'); //查询不存在的期望数据
+r($stakeholder->getExpectByID($expectIDList[1])) && p('expect') && e('期望内容17');//正常查询期望数据
\ No newline at end of file
diff --git a/test/model/stakeholder/getexpectbyuser.php b/test/model/stakeholder/getexpectbyuser.php
new file mode 100755
index 0000000000..c95f5f44aa
--- /dev/null
+++ b/test/model/stakeholder/getexpectbyuser.php
@@ -0,0 +1,23 @@
+#!/usr/bin/env php
+getExpectByUser();
+cid=1
+pid=1
+
+查询不存在的期望 >> 0
+正常查询期望 >> 11
+
+*/
+global $tester;
+$stakeholder = $tester->loadModel('stakeholder');
+
+$stakeholderIDList = array('0', '32');
+
+r($stakeholder->getExpectByUser($stakeholderIDList[0])) && p() && e('0'); //查询不存在的期望
+r($stakeholder->getExpectByUser($stakeholderIDList[1])) && p('0:project') && e('11');//正常查询期望
\ No newline at end of file
diff --git a/test/model/stakeholder/getexpectlist.php.bak b/test/model/stakeholder/getexpectlist.php.bak
new file mode 100644
index 0000000000..0148638160
--- /dev/null
+++ b/test/model/stakeholder/getexpectlist.php.bak
@@ -0,0 +1,17 @@
+#!/usr/bin/env php
+getExpectList();
+cid=1
+pid=1
+
+*/
+
+$stakeholder = new stakeholderTest();
+
+r($stakeholder->getExpectListTest()) && p() && e();
\ No newline at end of file
diff --git a/test/model/stakeholder/getissues.php.bak b/test/model/stakeholder/getissues.php.bak
new file mode 100644
index 0000000000..80238b9030
--- /dev/null
+++ b/test/model/stakeholder/getissues.php.bak
@@ -0,0 +1,17 @@
+#!/usr/bin/env php
+getIssues();
+cid=1
+pid=1
+
+*/
+
+$stakeholder = new stakeholderTest();
+
+r($stakeholder->getIssuesTest()) && p() && e();
\ No newline at end of file
diff --git a/test/model/stakeholder/getlistbytype.php.bak b/test/model/stakeholder/getlistbytype.php.bak
new file mode 100644
index 0000000000..f44f4de928
--- /dev/null
+++ b/test/model/stakeholder/getlistbytype.php.bak
@@ -0,0 +1,18 @@
+#!/usr/bin/env php
+getListByType();
+cid=1
+pid=1
+
+*/
+global $tester;
+$stakeholder = $tester->loadModel('stakeholder');
+
+var_dump($stakeholder->getListByType());die;
+r($stakeholder->getListByTypeTest()) && p() && e();
diff --git a/test/model/stakeholder/getparentstakeholdergroup.php b/test/model/stakeholder/getparentstakeholdergroup.php
new file mode 100755
index 0000000000..d55a46e4a2
--- /dev/null
+++ b/test/model/stakeholder/getparentstakeholdergroup.php
@@ -0,0 +1,26 @@
+#!/usr/bin/env php
+getParentStakeholderGroup();
+cid=1
+pid=1
+
+正常输入项目项目集参数查询 >> user9
+不输入项目集项目参数查询 >> 0
+正常输入项目项目集参数查询统计 >> 2
+
+*/
+global $tester;
+$stakeholder = $tester->loadModel('stakeholder');
+
+$objectIDList = array('11', '31', '100', '1');
+$noObjectIDList = array();
+
+r($stakeholder->getParentStakeholderGroup($objectIDList)) && p('31:user9') && e('user9');//正常输入项目项目集参数查询
+r($stakeholder->getParentStakeholderGroup($noObjectIDList)) && p() && e('0'); //不输入项目集项目参数查询
+r(count($stakeholder->getParentStakeholderGroup($objectIDList))) && p() && e('2'); //正常输入项目项目集参数查询统计
\ No newline at end of file
diff --git a/test/model/stakeholder/getplans.php.bak b/test/model/stakeholder/getplans.php.bak
new file mode 100644
index 0000000000..709b81a505
--- /dev/null
+++ b/test/model/stakeholder/getplans.php.bak
@@ -0,0 +1,17 @@
+#!/usr/bin/env php
+getPlans();
+cid=1
+pid=1
+
+*/
+
+$stakeholder = new stakeholderTest();
+
+r($stakeholder->getPlansTest()) && p() && e();
\ No newline at end of file
diff --git a/test/model/stakeholder/getprocess.php.bak b/test/model/stakeholder/getprocess.php.bak
new file mode 100644
index 0000000000..e6e73dcc38
--- /dev/null
+++ b/test/model/stakeholder/getprocess.php.bak
@@ -0,0 +1,18 @@
+#!/usr/bin/env php
+getProcess();
+cid=1
+pid=1
+
+*/
+global $tester;
+$stakeholder = $tester->loadModel('stakeholder');
+
+var_dump($stakeholder->getProcess());die;
+r($stakeholder->getProcess()) && p() && e();
diff --git a/test/model/stakeholder/getprocessgroup.php.bak b/test/model/stakeholder/getprocessgroup.php.bak
new file mode 100644
index 0000000000..f0e5cc1668
--- /dev/null
+++ b/test/model/stakeholder/getprocessgroup.php.bak
@@ -0,0 +1,17 @@
+#!/usr/bin/env php
+getProcessGroup();
+cid=1
+pid=1
+
+*/
+
+$stakeholder = new stakeholderTest();
+
+r($stakeholder->getProcessGroupTest()) && p() && e();
\ No newline at end of file
diff --git a/test/model/stakeholder/getstakeholdergroup.php b/test/model/stakeholder/getstakeholdergroup.php
new file mode 100755
index 0000000000..dde986b9bf
--- /dev/null
+++ b/test/model/stakeholder/getstakeholdergroup.php
@@ -0,0 +1,26 @@
+#!/usr/bin/env php
+getStakeholderGroup();
+cid=1
+pid=1
+
+正常查询干系人分组 >> admin
+正常查询干系人分组统计 >> 4
+空数组查询 >> 0
+
+*/
+global $tester;
+$stakeholder = $tester->loadModel('stakeholder');
+
+$objectIDList = array('11', '31', '100', '1');
+$noObjectIDList = array();
+
+r($stakeholder->getStakeholderGroup($objectIDList)) && p('11:admin') && e('admin');//正常查询干系人分组
+r(count($stakeholder->getStakeholderGroup($objectIDList))) && p() && e('4'); //正常查询干系人分组统计
+r($stakeholder->getStakeholderGroup($noObjectIDList)) && p() && e('0'); //空数组查询
\ No newline at end of file
diff --git a/test/model/stakeholder/getstakeholderissue.php.bak b/test/model/stakeholder/getstakeholderissue.php.bak
new file mode 100644
index 0000000000..89390d8d28
--- /dev/null
+++ b/test/model/stakeholder/getstakeholderissue.php.bak
@@ -0,0 +1,17 @@
+#!/usr/bin/env php
+getStakeholderIssue();
+cid=1
+pid=1
+
+*/
+
+$stakeholder = new stakeholderTest();
+
+r($stakeholder->getStakeholderIssueTest()) && p() && e();
\ No newline at end of file
diff --git a/test/model/stakeholder/getstakeholderpairs.php b/test/model/stakeholder/getstakeholderpairs.php
new file mode 100755
index 0000000000..d944e2f36a
--- /dev/null
+++ b/test/model/stakeholder/getstakeholderpairs.php
@@ -0,0 +1,35 @@
+#!/usr/bin/env php
+getStakeHolderPairs();
+cid=1
+pid=1
+
+敏捷项目查询干系人 >> 开发8
+瀑布项目查询干系人 >> 产品经理8
+外部干系人查询 >> 用户1
+项目集干系人查询 >> 测试7
+敏捷项目查询干系人统 计 >> 4
+瀑布项目查询干系人统计 >> 3
+外部干系人查询统计 >> 3
+项目集干系人查询统计 >> 3
+
+*/
+global $tester;
+$stakeholder = $tester->loadModel('stakeholder');
+
+$projectIDList = array('11', '31', '100', '1');
+
+r($stakeholder->getStakeHolderPairs($projectIDList[0])) && p('test8') && e('开发8'); //敏捷项目查询干系人
+r($stakeholder->getStakeHolderPairs($projectIDList[1])) && p('pm8') && e('产品经理8');//瀑布项目查询干系人
+r($stakeholder->getStakeHolderPairs($projectIDList[2])) && p('outside1') && e('用户1'); //外部干系人查询
+r($stakeholder->getStakeHolderPairs($projectIDList[3])) && p('user7') && e('测试7'); //项目集干系人查询
+r(count($stakeholder->getStakeHolderPairs($projectIDList[0]))) && p() && e('4'); //敏捷项目查询干系人统 计
+r(count($stakeholder->getStakeHolderPairs($projectIDList[1]))) && p() && e('3'); //瀑布项目查询干系人统计
+r(count($stakeholder->getStakeHolderPairs($projectIDList[2]))) && p() && e('3'); //外部干系人查询统计
+r(count($stakeholder->getStakeHolderPairs($projectIDList[3]))) && p() && e('3'); //项目集干系人查询统计
\ No newline at end of file
diff --git a/test/model/stakeholder/getstakeholders.php b/test/model/stakeholder/getstakeholders.php
new file mode 100755
index 0000000000..a65eed3f36
--- /dev/null
+++ b/test/model/stakeholder/getstakeholders.php
@@ -0,0 +1,41 @@
+#!/usr/bin/env php
+getStakeholders();
+cid=1
+pid=1
+
+敏捷项目干系人查询 >> 11,project
+瀑布项目inside干系人查询 >> 31,产品经理10
+outside干系人查询 >> project,用户1
+关键干系人查询 >> 1,admin
+项目集干系人查询 >> 1,program
+敏捷项目干系人查询统计 >> 4
+瀑布项目inside干系人查询统计 >> 3
+outside干系人查询统计 >> 1
+关键干系人查询统计 >> 1
+项目集干系人查询统计 >> 3
+
+*/
+global $tester;
+$stakeholder = $tester->loadModel('stakeholder');
+
+$projectIDList = array('11', '31', '100', '1');
+$browseType = array('all', 'inside', 'outside', 'key', 'qt');
+$orderBy = array('id_desc', 'name_desc');
+
+r($stakeholder->getStakeholders($projectIDList[0], $browseType[0], $orderBy[0])) && p('1:objectID,objectType') && e('11,project'); //敏捷项目干系人查询
+r($stakeholder->getStakeholders($projectIDList[1], $browseType[1], $orderBy[1])) && p('92:objectID,name') && e('31,产品经理10');//瀑布项目inside干系人查询
+r($stakeholder->getStakeholders($projectIDList[2], $browseType[2], $orderBy[1])) && p('301:objectType,name') && e('project,用户1');//outside干系人查询
+r($stakeholder->getStakeholders($projectIDList[0], $browseType[3], $orderBy[0])) && p('1:key,name') && e('1,admin'); //关键干系人查询
+r($stakeholder->getStakeholders($projectIDList[3], $browseType[0], $orderBy[0])) && p('2:objectID,objectType') && e('1,program'); //项目集干系人查询
+r(count($stakeholder->getStakeholders($projectIDList[0], $browseType[0], $orderBy[0]))) && p() && e('4'); //敏捷项目干系人查询统计
+r(count($stakeholder->getStakeholders($projectIDList[1], $browseType[1], $orderBy[1]))) && p() && e('3'); //瀑布项目inside干系人查询统计
+r(count($stakeholder->getStakeholders($projectIDList[2], $browseType[2], $orderBy[1]))) && p() && e('1'); //outside干系人查询统计
+r(count($stakeholder->getStakeholders($projectIDList[0], $browseType[3], $orderBy[0]))) && p() && e('1'); //关键干系人查询统计
+r(count($stakeholder->getStakeholders($projectIDList[3], $browseType[0], $orderBy[0]))) && p() && e('3'); //项目集干系人查询统计
\ No newline at end of file
diff --git a/test/model/stakeholder/getstakeholders4issue.php.bak b/test/model/stakeholder/getstakeholders4issue.php.bak
new file mode 100644
index 0000000000..43a267e204
--- /dev/null
+++ b/test/model/stakeholder/getstakeholders4issue.php.bak
@@ -0,0 +1,17 @@
+#!/usr/bin/env php
+getStakeholders4Issue();
+cid=1
+pid=1
+
+*/
+
+$stakeholder = new stakeholderTest();
+
+r($stakeholder->getStakeholders4IssueTest()) && p() && e();
\ No newline at end of file
diff --git a/test/model/stakeholder/getstakeholderusers.php.bak b/test/model/stakeholder/getstakeholderusers.php.bak
new file mode 100644
index 0000000000..36329238b3
--- /dev/null
+++ b/test/model/stakeholder/getstakeholderusers.php.bak
@@ -0,0 +1,17 @@
+#!/usr/bin/env php
+getStakeholderUsers();
+cid=1
+pid=1
+
+*/
+
+$stakeholder = new stakeholderTest();
+
+r($stakeholder->getStakeholderUsersTest()) && p() && e();
\ No newline at end of file
diff --git a/test/ztest b/test/ztest
index eee1fa34c2..9431249a79 100755
--- a/test/ztest
+++ b/test/ztest
@@ -85,6 +85,12 @@ switch($argv[1])
case 'design':
ztfRun('model/design');
break;
+ case 'stakeholder':
+ ztfRun('model/stakeholder');
+ break;
+ case 'productsonplan':
+ ztfRun('model/productsonplan');
+ break;
case 'model':
ztfRun('model');
break;