From f9408291aae92006c1469d0c89aa285dc69f7e9f Mon Sep 17 00:00:00 2001 From: liugang Date: Tue, 9 Sep 2025 10:05:14 +0800 Subject: [PATCH] + [misc] Add unit tests for projectModel::getInvolvedListByCurrentUser() method MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .../test/lib/project.unittest.class.php | 15 +++++++ .../model/getinvolvedlistbycurrentuser.php | 41 +++++++++++++++++++ .../project_getinvolvedlistbycurrentuser.yaml | 30 ++++++++++++++ ...keholder_getinvolvedlistbycurrentuser.yaml | 26 ++++++++++++ .../team_getinvolvedlistbycurrentuser.yaml | 18 ++++++++ 5 files changed, 130 insertions(+) create mode 100755 module/project/test/model/getinvolvedlistbycurrentuser.php create mode 100644 module/project/test/model/yaml/project_getinvolvedlistbycurrentuser.yaml create mode 100644 module/project/test/model/yaml/stakeholder_getinvolvedlistbycurrentuser.yaml create mode 100644 module/project/test/model/yaml/team_getinvolvedlistbycurrentuser.yaml diff --git a/module/project/test/lib/project.unittest.class.php b/module/project/test/lib/project.unittest.class.php index 7db1440a14..cd1c9664a9 100644 --- a/module/project/test/lib/project.unittest.class.php +++ b/module/project/test/lib/project.unittest.class.php @@ -53,4 +53,19 @@ class Project return $result; } + + /** + * Test getInvolvedListByCurrentUser method. + * + * @param string $fields + * @access public + * @return mixed + */ + public function getInvolvedListByCurrentUserTest($fields = 't1.*') + { + $result = $this->objectModel->getInvolvedListByCurrentUser($fields); + if(dao::isError()) return dao::getError(); + + return $result; + } } \ No newline at end of file diff --git a/module/project/test/model/getinvolvedlistbycurrentuser.php b/module/project/test/model/getinvolvedlistbycurrentuser.php new file mode 100755 index 0000000000..db94810ff9 --- /dev/null +++ b/module/project/test/model/getinvolvedlistbycurrentuser.php @@ -0,0 +1,41 @@ +#!/usr/bin/env php +loadYaml('project_getinvolvedlistbycurrentuser', false, 2)->gen(10); +zenData('team')->loadYaml('team_getinvolvedlistbycurrentuser', false, 2)->gen(15); +zenData('stakeholder')->loadYaml('stakeholder_getinvolvedlistbycurrentuser', false, 2)->gen(10); + +su('admin'); + +$projectTest = new Project(); + +r($projectTest->getInvolvedListByCurrentUserTest('t1.*')) && p() && e('5'); +r($projectTest->getInvolvedListByCurrentUserTest('t1.id,t1.name')) && p('1:id,1:name;2:id,2:name') && e('1,项目1;2,项目2'); +r($projectTest->getInvolvedListByCurrentUserTest()) && p('1:name,2:name') && e('项目1,项目2'); +su('user1'); +r($projectTest->getInvolvedListByCurrentUserTest()) && p() && e('3'); +su('testuser'); +r($projectTest->getInvolvedListByCurrentUserTest()) && p() && e('2'); \ No newline at end of file diff --git a/module/project/test/model/yaml/project_getinvolvedlistbycurrentuser.yaml b/module/project/test/model/yaml/project_getinvolvedlistbycurrentuser.yaml new file mode 100644 index 0000000000..97dc5c839f --- /dev/null +++ b/module/project/test/model/yaml/project_getinvolvedlistbycurrentuser.yaml @@ -0,0 +1,30 @@ +--- +title: 项目数据 +desc: 用于测试 getInvolvedListByCurrentUser 方法的项目数据 +author: claude + +fields: +- field: id + range: 1-10 +- field: name + range: '项目1,项目2,项目3,项目4,项目5,项目6,项目7,项目8,项目9,项目10' +- field: type + range: 'project{10}' +- field: openedBy + range: 'admin{2},user1{2},user2{2},user3{2},testuser{2}' +- field: PM + range: 'admin{2},user1{2},user2{2},user3{2},testuser{2}' +- field: deleted + range: '0{10}' +- field: status + range: 'wait{3},doing{3},done{2},suspended{1},closed{1}' +- field: vision + range: 'rnd{10}' +- field: acl + range: 'open{7},private{3}' +- field: whitelist + range: 'admin{2},user1{2},user2{2},user3{2},testuser{2}' +- field: begin + range: '2024-01-01{3},2024-02-01{3},2024-03-01{4}' +- field: end + range: '2024-12-31{3},2024-11-30{3},2024-10-31{4}' \ No newline at end of file diff --git a/module/project/test/model/yaml/stakeholder_getinvolvedlistbycurrentuser.yaml b/module/project/test/model/yaml/stakeholder_getinvolvedlistbycurrentuser.yaml new file mode 100644 index 0000000000..923ec0b476 --- /dev/null +++ b/module/project/test/model/yaml/stakeholder_getinvolvedlistbycurrentuser.yaml @@ -0,0 +1,26 @@ +--- +title: 干系人数据 +desc: 用于测试 getInvolvedListByCurrentUser 方法的项目干系人数据 +author: claude + +fields: +- field: id + range: 1-10 +- field: objectID + range: 1-10 +- field: objectType + range: 'project{10}' +- field: user + range: 'admin{2},user1{2},user2{2},user3{2},testuser{2}' +- field: type + range: 'inside{5},outside{5}' +- field: key + range: '0{7},1{3}' +- field: from + range: 'manual{5},sync{5}' +- field: deleted + range: '0{10}' +- field: createdBy + range: 'admin{5},system{5}' +- field: createdDate + range: '2024-01-01{5},2024-02-01{5}' \ No newline at end of file diff --git a/module/project/test/model/yaml/team_getinvolvedlistbycurrentuser.yaml b/module/project/test/model/yaml/team_getinvolvedlistbycurrentuser.yaml new file mode 100644 index 0000000000..605fe851d4 --- /dev/null +++ b/module/project/test/model/yaml/team_getinvolvedlistbycurrentuser.yaml @@ -0,0 +1,18 @@ +--- +title: 团队数据 +desc: 用于测试 getInvolvedListByCurrentUser 方法的团队成员数据 +author: claude + +fields: +- field: id + range: 1-15 +- field: root + range: '1{3},2{3},3{3},4{3},5{3}' +- field: type + range: 'project{15}' +- field: account + range: 'admin{3},user1{3},user2{3},user3{3},testuser{3}' +- field: role + range: 'QA{5},dev{5},pm{5}' +- field: join + range: '2024-01-01{5},2024-02-01{5},2024-03-01{5}' \ No newline at end of file