From 1721b485f606d3d211af4e94aa93c59d85eb9535 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Thu, 21 Sep 2023 10:45:09 +0800 Subject: [PATCH] + Add case for afterMerge method. --- module/branch/test/branch.class.php | 21 ++++++++++ module/branch/test/tao/aftermerge.php | 51 ++++++++++++++++++++++++ module/branch/test/yaml/build.yaml | 17 ++++++++ module/branch/test/yaml/productplan.yaml | 21 ++++++++++ module/branch/test/yaml/release.yaml | 21 ++++++++++ module/branch/test/yaml/story.yaml | 17 ++++++++ 6 files changed, 148 insertions(+) create mode 100644 module/branch/test/tao/aftermerge.php create mode 100644 module/branch/test/yaml/build.yaml create mode 100644 module/branch/test/yaml/productplan.yaml create mode 100644 module/branch/test/yaml/release.yaml create mode 100644 module/branch/test/yaml/story.yaml diff --git a/module/branch/test/branch.class.php b/module/branch/test/branch.class.php index d75204a097..0188ffb8bd 100644 --- a/module/branch/test/branch.class.php +++ b/module/branch/test/branch.class.php @@ -416,4 +416,25 @@ class branchTest $branches = $this->objectModel->dao->select('*')->from(TABLE_BRANCH)->where('deleted')->eq(0)->andWhere('product')->eq($productID)->fetchAll(); return count($branches); } + + /** + * 合并分支后的其他数据处理。 + * other data process after merge branch. + * + * @param int $productID + * @param string $mergedBranches + * @param object $data + * @access public + * @return array|int + */ + public function afterMergeTest(int $productID, string $mergedBranches, object $data): array|int + { + $targetBranch = $data->targetBranch; + $objectID = $this->objectModel->afterMerge($productID, $targetBranch, $mergedBranches, $data); + + if(dao::isError()) return dao::getError(); + + $releases = $this->objectModel->dao->select('*')->from(TABLE_RELEASE)->where('deleted')->eq(0)->andWhere('branch')->in($data->mergedBranchIDList)->fetchAll(); + return count($releases); + } } diff --git a/module/branch/test/tao/aftermerge.php b/module/branch/test/tao/aftermerge.php new file mode 100644 index 0000000000..3a6c77a24c --- /dev/null +++ b/module/branch/test/tao/aftermerge.php @@ -0,0 +1,51 @@ +#!/usr/bin/env php +config('product')->gen(10); +zdTable('branch')->config('branch')->gen(30); +zdTable('projectproduct')->config('projectproduct')->gen(30); +zdTable('productplan')->config('productplan')->gen(30); +zdTable('release')->config('release')->gen(30); +zdTable('build')->config('build')->gen(30); +zdTable('story')->config('story')->gen(30); +zdTable('user')->gen(5); +zdTable('module')->gen(0); +zdTable('bug')->gen(0); +zdTable('case')->gen(0); +zdTable('projectstory')->gen(0); +su('admin'); + +/** + +title=测试 branchModel->afterMerge(); +timeout=0 +cid=1 + +*/ + +$productID = array(6, 7); +$mergedBranches = array(1, 4, 6); + +$mergeBranch1 = new stdclass(); +$mergeBranch1->createBranch = 0; +$mergeBranch1->mergedBranchIDList = array(1); +$mergeBranch1->targetBranch = 2; + +$mergeBranch2 = new stdclass(); +$mergeBranch2->name = '新建合并的分支'; +$mergeBranch2->desc = '合并分支的描述'; +$mergeBranch2->createBranch = 1; +$mergeBranch2->mergedBranchIDList = array(2); +$mergeBranch2->targetBranch = 0; + +$mergeBranch3 = new stdclass(); +$mergeBranch3->createBranch = 0; +$mergeBranch3->mergedBranchIDList = array(4, 5); +$mergeBranch3->targetBranch = 0; + +$branchTester = new branchTest(); +r($branchTester->afterMergeTest($productID[0], $mergedBranches[0], $mergeBranch1)) && p() && e('0'); // 测试合并分支1 到 分支2 +r($branchTester->afterMergeTest($productID[0], $mergedBranches[1], $mergeBranch2)) && p() && e('1'); // 测试合并分支4 到 新建分支 +r($branchTester->afterMergeTest($productID[1], $mergedBranches[2], $mergeBranch3)) && p() && e('1'); // 测试合并分支6 到 主干 diff --git a/module/branch/test/yaml/build.yaml b/module/branch/test/yaml/build.yaml new file mode 100644 index 0000000000..fd98d3268a --- /dev/null +++ b/module/branch/test/yaml/build.yaml @@ -0,0 +1,17 @@ +title: zt_build +author: Shujie Tian +version: 1.0.0 +fields: + - field: id + range: 1-30 + - field: name + range: 1-30 + prefix: '版本' + - field: product + range: 1-10{3} + - field: branch + renge: '0{16},2-14' + - field: date + range: '`2021-01-01`,`2021-06-01`,`2022-01-01`,`2022-07-01`,`2030-01-01`' + - field: stories + range: '`,1,2,3`,`11,12,13,14`,[]{13},`,1,2,3,52,53,56,58`,`51,54,57,59,`,`62,66,68,`' diff --git a/module/branch/test/yaml/productplan.yaml b/module/branch/test/yaml/productplan.yaml new file mode 100644 index 0000000000..44563e93cb --- /dev/null +++ b/module/branch/test/yaml/productplan.yaml @@ -0,0 +1,21 @@ +title: zt_productplan +author: Shujie Tian +version: 1.0.0 +fields: + - field: id + range: 1-100 + - field: title + range: 1-100 + prefix: '计划' + - field: product + range: 1-10{3} + - field: branch + range: '0{16},2-14' + - field: parent + range: '`-1`,1,0{98}' + - field: status + range: wait,doing,done,closed + - field: begin + range: '`2021-01-01`,`2021-06-01`,`2022-01-01`,`2022-07-01`,`2030-01-01`' + - field: end + range: '`2021-01-30`,`2021-06-30`,`2022-01-30`,`2022-07-30`,`2030-01-01`' diff --git a/module/branch/test/yaml/release.yaml b/module/branch/test/yaml/release.yaml new file mode 100644 index 0000000000..70b86b0f93 --- /dev/null +++ b/module/branch/test/yaml/release.yaml @@ -0,0 +1,21 @@ +title: zt_release +author: Shujie Tian +version: 1.0.0 +fields: + - field: id + range: 1-100 + - field: name + range: 1-100 + prefix: '发布' + - field: product + range: 1-10{3} + - field: branch + range: '0{16},2-14' + - field: status + range: 'normal{20},terminate{10}' + - field: date + range: '`2021-01-01`,`2021-06-01`,`2022-01-01`,`2022-07-01`,`2030-01-01`' + - field: build + renge: 1-30 + - field: stories + range: '`,1,2,3`,`11,12,13,14`,[]{13},`,1,2,3,52,53,56,58`,`51,54,57,59,`,`62,66,68,`' diff --git a/module/branch/test/yaml/story.yaml b/module/branch/test/yaml/story.yaml new file mode 100644 index 0000000000..98c46a6fba --- /dev/null +++ b/module/branch/test/yaml/story.yaml @@ -0,0 +1,17 @@ +title: zt_story +author: Shujie Tian +version: 1.0.0 +fields: + - field: id + range: 1-100 + - field: title + range: 1-100 + prefix: '需求' + - field: product + range: 1-10{10} + - field: branch + range: '0{55},2-15{5}' + - field: stage + range: 'wait,planned,projected,developing,developed,testing,tested,verified,released,closed' + - field: status + range: 'draft,changing,active{7},closed'