From 92392aff0d698334cc67acc512dd6ef31009fa19 Mon Sep 17 00:00:00 2001 From: liugang Date: Tue, 16 Sep 2025 19:13:47 +0800 Subject: [PATCH] + [misc] Add unit tests for programZen::getProgramList4Kanban() 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/program.unittest.class.php | 17 ++++++ .../test/zen/getprogramlist4kanban.php | 46 +++++++++++++++ .../yaml/project_getprogramlist4kanban.yaml | 58 +++++++++++++++++++ 3 files changed, 121 insertions(+) create mode 100755 module/program/test/zen/getprogramlist4kanban.php create mode 100644 module/program/test/zen/yaml/project_getprogramlist4kanban.yaml diff --git a/module/program/test/lib/program.unittest.class.php b/module/program/test/lib/program.unittest.class.php index 4d5e14f7c1..5cc5503e3e 100644 --- a/module/program/test/lib/program.unittest.class.php +++ b/module/program/test/lib/program.unittest.class.php @@ -838,4 +838,21 @@ class programTest return count($programs); } + + /** + * Test getProgramList4Kanban method. + * + * @param string $browseType + * @access public + * @return array + */ + public function getProgramList4KanbanTest(string $browseType = 'my'): array + { + global $tester; + $programZen = $tester->loadZen('program'); + $result = $programZen->getProgramList4Kanban($browseType); + if(dao::isError()) return dao::getError(); + + return $result; + } } diff --git a/module/program/test/zen/getprogramlist4kanban.php b/module/program/test/zen/getprogramlist4kanban.php new file mode 100755 index 0000000000..ce29a5030c --- /dev/null +++ b/module/program/test/zen/getprogramlist4kanban.php @@ -0,0 +1,46 @@ +#!/usr/bin/env php +loadYaml('project_getprogramlist4kanban', false, 2); +$table->gen(10); + +$product = zenData('product'); +$product->id->range('1-3'); +$product->program->range('1,2,3'); +$product->name->range('产品1,产品2,产品3'); +$product->deleted->range('0'); +$product->gen(3); + +$team = zenData('team'); +$team->root->range('1,2,3'); +$team->type->range('program'); +$team->account->range('admin'); +$team->gen(3); + +su('admin'); + +$programTest = new programTest(); + +r($programTest->getProgramList4KanbanTest('my')) && p() && e('array'); +r($programTest->getProgramList4KanbanTest('other')) && p() && e('array'); +r($programTest->getProgramList4KanbanTest('')) && p() && e('array'); +r($programTest->getProgramList4KanbanTest('invalid')) && p() && e('array'); +r(count($programTest->getProgramList4KanbanTest('my'))) && p() && e('2'); \ No newline at end of file diff --git a/module/program/test/zen/yaml/project_getprogramlist4kanban.yaml b/module/program/test/zen/yaml/project_getprogramlist4kanban.yaml new file mode 100644 index 0000000000..ec9cd0e842 --- /dev/null +++ b/module/program/test/zen/yaml/project_getprogramlist4kanban.yaml @@ -0,0 +1,58 @@ +--- +title: 项目集看板数据定义 +desc: 用于getProgramList4Kanban方法测试的项目集数据 +author: Claude +version: 1.0 + +fields: +- field: id + note: 项目集ID + range: 1-10 +- field: type + note: 类型 + range: program{5}, project{5} +- field: parent + note: 父级ID + range: 0{5}, 1{2}, 2{2}, 3{1} +- field: name + note: 项目集名称 + range: 项目集1,项目集2,项目集3,项目集4,项目集5,项目1,项目2,项目3,项目4,项目5 +- field: code + note: 项目集代码 + range: prog001,prog002,prog003,prog004,prog005,proj001,proj002,proj003,proj004,proj005 +- field: status + note: 状态 + range: doing{4}, wait{3}, closed{2}, suspended{1} +- field: grade + note: 层级 + range: 1{5}, 2{5} +- field: path + note: 路径 + range: ,1,{2}, ,2,{2}, ,3,{1}, ,1,{2}, ,2,{2}, ,3,{1} +- field: begin + note: 开始日期 + range: 2024-01-01{10} + format: YYYY-MM-DD +- field: end + note: 结束日期 + range: 2024-12-31{10} + format: YYYY-MM-DD +- field: openedBy + note: 创建者 + range: admin{5}, user1{3}, user2{2} +- field: openedDate + note: 创建日期 + range: 2024-01-01 00:00:00{10} + format: YYYY-MM-DD hh:mm:ss +- field: PM + note: 项目经理 + range: admin{3}, user1{4}, user2{3} +- field: deleted + note: 是否删除 + range: 0{10} +- field: acl + note: 访问控制 + range: open{8}, private{2} +- field: order + note: 排序 + range: 1-10 \ No newline at end of file