From 3f27fb8874a8e3faca4e672ef11909245f43b2f0 Mon Sep 17 00:00:00 2001 From: liugang Date: Fri, 7 Nov 2025 22:10:24 +0800 Subject: [PATCH] + [misc] Add unit tests for bugZen::getBuildsForCreate() 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/bug/test/lib/zen.class.php | 35 ++++++++++ module/bug/test/zen/getbuildsforcreate.php | 81 ++++++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100755 module/bug/test/zen/getbuildsforcreate.php diff --git a/module/bug/test/lib/zen.class.php b/module/bug/test/lib/zen.class.php index ea15890d2f..997b6a8dc2 100644 --- a/module/bug/test/lib/zen.class.php +++ b/module/bug/test/lib/zen.class.php @@ -538,4 +538,39 @@ class bugZenTest extends baseTest if(dao::isError()) return false; return $result; } + + /** + * Test getBrowseBugs method. + * + * @param int $productID + * @param string $branch + * @param string $browseType + * @param array $executions + * @param int $moduleID + * @param int $queryID + * @param string $orderBy + * @param object $pager + * @access public + * @return array|false + */ + public function getBrowseBugsTest(int $productID, string $branch, string $browseType, array $executions, int $moduleID, int $queryID, string $orderBy, object $pager) + { + $result = $this->invokeArgs('getBrowseBugs', [$productID, $branch, $browseType, $executions, $moduleID, $queryID, $orderBy, $pager]); + if(dao::isError()) return false; + return $result; + } + + /** + * Test getBuildsForCreate method. + * + * @param object $bug + * @access public + * @return object|false + */ + public function getBuildsForCreateTest(object $bug) + { + $result = $this->invokeArgs('getBuildsForCreate', [$bug]); + if(dao::isError()) return false; + return $result; + } } diff --git a/module/bug/test/zen/getbuildsforcreate.php b/module/bug/test/zen/getbuildsforcreate.php new file mode 100755 index 0000000000..123a477620 --- /dev/null +++ b/module/bug/test/zen/getbuildsforcreate.php @@ -0,0 +1,81 @@ +#!/usr/bin/env php +id->range('1-20'); +$build->product->range('1{10},2{5},3{5}'); +$build->branch->range('0,1,2'); +$build->project->range('1{5},2{5},3{5},0{5}'); +$build->execution->range('0,101{5},102{5},0{10}'); +$build->name->prefix('Build')->range('1-20'); +$build->deleted->range('0'); +$build->gen(20); + +zenData('product')->gen(5); +zenData('project')->gen(5); +zenData('user')->gen(5); + +$bugTest = new bugZenTest(); + +$bug1 = new stdClass(); +$bug1->productID = 1; +$bug1->branch = '0'; +$bug1->projectID = 0; +$bug1->executionID = 0; +$bug1->allBuilds = true; + +$bug2 = new stdClass(); +$bug2->productID = 1; +$bug2->branch = '0'; +$bug2->projectID = 1; +$bug2->executionID = 101; +$bug2->allBuilds = false; + +$bug3 = new stdClass(); +$bug3->productID = 1; +$bug3->branch = '0'; +$bug3->projectID = 1; +$bug3->executionID = 0; +$bug3->allBuilds = false; + +$bug4 = new stdClass(); +$bug4->productID = 1; +$bug4->branch = '0'; +$bug4->projectID = 0; +$bug4->executionID = 0; +$bug4->allBuilds = false; + +$bug5 = new stdClass(); +$bug5->productID = 2; +$bug5->branch = '1'; +$bug5->projectID = 0; +$bug5->executionID = 0; +$bug5->allBuilds = false; + +r(is_array($bugTest->getBuildsForCreateTest($bug1)->builds)) && p() && e('1'); // 步骤1:测试allBuilds为true时builds是数组 +r(is_array($bugTest->getBuildsForCreateTest($bug2)->builds)) && p() && e('1'); // 步骤2:测试有executionID时builds是数组 +r(is_array($bugTest->getBuildsForCreateTest($bug3)->builds)) && p() && e('1'); // 步骤3:测试有projectID但无executionID时builds是数组 +r(is_array($bugTest->getBuildsForCreateTest($bug4)->builds)) && p() && e('1'); // 步骤4:测试无executionID和projectID时builds是数组 +r(property_exists($bugTest->getBuildsForCreateTest($bug1), 'builds')) && p() && e('1'); // 步骤5:测试返回对象包含builds属性 +r(is_array($bugTest->getBuildsForCreateTest($bug5)->builds)) && p() && e('1'); // 步骤6:测试不同分支获取builds是数组 +r(property_exists($bugTest->getBuildsForCreateTest($bug1), 'productID')) && p() && e('1'); // 步骤7:测试返回对象包含原有属性 \ No newline at end of file