From bb021cb8d64f19cfc92d85c039122c7ca93c01d7 Mon Sep 17 00:00:00 2001 From: liugang Date: Fri, 12 Sep 2025 06:19:39 +0800 Subject: [PATCH] + [misc] Add unit tests for myTao::fetchRequirementsBySearch() 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 --- module/my/test/lib/my.unittest.class.php | 23 +++++++ .../my/test/tao/fetchrequirementsbysearch.php | 33 ++++++++++ .../product_fetchrequirementsbysearch.yaml | 24 +++++++ .../yaml/story_fetchrequirementsbysearch.yaml | 66 +++++++++++++++++++ ...storyreview_fetchrequirementsbysearch.yaml | 21 ++++++ 5 files changed, 167 insertions(+) create mode 100755 module/my/test/tao/fetchrequirementsbysearch.php create mode 100644 module/my/test/tao/yaml/product_fetchrequirementsbysearch.yaml create mode 100644 module/my/test/tao/yaml/story_fetchrequirementsbysearch.yaml create mode 100644 module/my/test/tao/yaml/storyreview_fetchrequirementsbysearch.yaml diff --git a/module/my/test/lib/my.unittest.class.php b/module/my/test/lib/my.unittest.class.php index 94540b8647..104975ea1a 100644 --- a/module/my/test/lib/my.unittest.class.php +++ b/module/my/test/lib/my.unittest.class.php @@ -795,4 +795,27 @@ class myTest return count($result); } + + /** + * Test fetchRequirementsBySearch method. + * + * @param string $myRequirementQuery + * @param string $type + * @param string $orderBy + * @param object $pager + * @param array $requirementIDList + * @access public + * @return mixed + */ + public function fetchRequirementsBySearchTest(string $myRequirementQuery, string $type, string $orderBy, ?object $pager = null, array $requirementIDList = array()) + { + $reflection = new ReflectionClass($this->objectTao); + $method = $reflection->getMethod('fetchRequirementsBySearch'); + $method->setAccessible(true); + + $result = $method->invokeArgs($this->objectTao, [$myRequirementQuery, $type, $orderBy, $pager, $requirementIDList]); + if(dao::isError()) return dao::getError(); + + return count($result); + } } diff --git a/module/my/test/tao/fetchrequirementsbysearch.php b/module/my/test/tao/fetchrequirementsbysearch.php new file mode 100755 index 0000000000..e897223805 --- /dev/null +++ b/module/my/test/tao/fetchrequirementsbysearch.php @@ -0,0 +1,33 @@ +#!/usr/bin/env php +loadYaml('story_fetchrequirementsbysearch', false, 2)->gen(10); +zenData('product')->loadYaml('product_fetchrequirementsbysearch', false, 2)->gen(3); +zenData('storyreview')->loadYaml('storyreview_fetchrequirementsbysearch', false, 2)->gen(10); + +su('admin'); + +$myTest = new myTest(); + +r($myTest->fetchRequirementsBySearchTest("t1.deleted = '0'", 'contribute', 'id_desc', null, array())) && p() && e(3); +r($myTest->fetchRequirementsBySearchTest("t1.deleted = '0'", 'assigned', 'id_desc', null, array())) && p() && e(3); +r($myTest->fetchRequirementsBySearchTest("1 = 1", 'contribute', 'id_desc', null, array())) && p() && e(3); +r($myTest->fetchRequirementsBySearchTest("t1.deleted = '0'", 'contribute', 'id_desc', null, array(1, 2, 3))) && p() && e(4); +r($myTest->fetchRequirementsBySearchTest("t1.deleted = '0'", 'contribute', 'priOrder_desc', null, array())) && p() && e(3); \ No newline at end of file diff --git a/module/my/test/tao/yaml/product_fetchrequirementsbysearch.yaml b/module/my/test/tao/yaml/product_fetchrequirementsbysearch.yaml new file mode 100644 index 0000000000..660d6c76f3 --- /dev/null +++ b/module/my/test/tao/yaml/product_fetchrequirementsbysearch.yaml @@ -0,0 +1,24 @@ +--- +title: 产品数据 +desc: fetchRequirementsBySearch测试的产品数据 +author: Claude Code +version: "1.0" + +fields: +- field: id + range: 1-3 + +- field: name + range: '产品A,产品B,产品C' + +- field: code + range: 'PROD-A,PROD-B,PROD-C' + +- field: type + range: normal{3} + +- field: status + range: normal{3} + +- field: deleted + range: 0{3} \ No newline at end of file diff --git a/module/my/test/tao/yaml/story_fetchrequirementsbysearch.yaml b/module/my/test/tao/yaml/story_fetchrequirementsbysearch.yaml new file mode 100644 index 0000000000..f45adc7e02 --- /dev/null +++ b/module/my/test/tao/yaml/story_fetchrequirementsbysearch.yaml @@ -0,0 +1,66 @@ +--- +title: 用户需求数据 +desc: fetchRequirementsBySearch测试的用户需求数据 +author: Claude Code +version: "1.0" + +fields: +- field: id + range: 1-10 + +- field: vision + range: rnd{10} + +- field: parent + range: 0{10} + +- field: isParent + range: 0{10} + +- field: root + range: 0{10} + +- field: product + range: 1-3 + +- field: branch + range: 0{10} + +- field: module + range: 0{10} + +- field: title + range: '用户需求{1-10}' + +- field: type + range: requirement{10} + +- field: category + range: feature{10} + +- field: pri + range: 1-4 + +- field: estimate + range: 1-10 + +- field: status + range: active{3},reviewing{2},draft{2},closed{3} + +- field: assignedTo + range: admin{3},user1{3},user2{3},user3{1} + +- field: openedBy + range: admin{4},user1{3},user2{3} + +- field: openedDate + range: '2024-01-01 10:00:00{5},2024-02-01 10:00:00{5}' + +- field: closedBy + range: ''{7},admin{2},user1{1} + +- field: closedDate + range: '0000-00-00 00:00:00'{7},'2024-03-01 10:00:00'{3} + +- field: deleted + range: 0{10} \ No newline at end of file diff --git a/module/my/test/tao/yaml/storyreview_fetchrequirementsbysearch.yaml b/module/my/test/tao/yaml/storyreview_fetchrequirementsbysearch.yaml new file mode 100644 index 0000000000..9194ddc378 --- /dev/null +++ b/module/my/test/tao/yaml/storyreview_fetchrequirementsbysearch.yaml @@ -0,0 +1,21 @@ +--- +title: 需求评审数据 +desc: fetchRequirementsBySearch测试的评审数据 +author: Claude Code +version: "1.0" + +fields: +- field: story + range: 1-10 + +- field: version + range: 1{10} + +- field: reviewer + range: admin{4},user1{3},user2{3} + +- field: result + range: ''{8},pass{2} + +- field: reviewDate + range: '0000-00-00 00:00:00'{8},'2024-01-15 10:00:00'{2} \ No newline at end of file