* [misc] Enhance unit tests for repoModel::getProductsByRepo() method

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-09-25 09:16:31 +08:00
co-authored by Claude
parent 2fb2d76792
commit 4e31f28310
3 changed files with 148 additions and 12 deletions
+32 -12
View File
@@ -3,26 +3,46 @@
/**
title=测试 repoModel->getProductsByRepo();
title=测试 repoModel::getProductsByRepo();
timeout=0
cid=1
cid=0
- 空的数据 @0
- 不存在的数据 @0
- 存在的数据属性1 @正常产品1
- 产品不存在的数据 @0
- 步骤1:无效代码库ID(0) @0
- 步骤2:不存在的代码库ID(99) @0
- 步骤3:单个产品关联(product=1)属性1 @正常产品1
- 步骤4:多个产品关联(product=2)属性2 @正常产品2
- 步骤5:过滤已删除产品(product=4)属性4 @正常产品4
- 步骤6:产品字段为空(product='') @0
- 步骤7:关联不存在产品(product=10) @0
- 步骤8:关联已删除产品(product=9,已删除) @0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/repo.unittest.class.php';
zenData('product')->gen(3);
zenData('repo')->loadYaml('repo')->gen(5);
// 生成产品数据
$productTable = zenData('product');
$productTable->id->range('1-12');
$productTable->name->range('正常产品1,正常产品2,正常产品3,正常产品4,正常产品5,正常产品6,正常产品7,正常产品8,已删除产品1,已删除产品2,不存在产品1,不存在产品2');
$productTable->code->range('product1,product2,product3,product4,product5,product6,product7,product8,deleted1,deleted2,notexist1,notexist2');
$productTable->deleted->range('0,0,0,0,0,0,0,0,1,1,0,0');
$productTable->gen(12);
// 生成代码库数据
$repoTable = zenData('repo');
$repoTable->id->range('1-13');
$repoTable->product->range('1,2,3,1,2,2,3,4,5,[],10,99,9');
$repoTable->name->range('singleProductRepo,multiProductRepo1,multiProductRepo2,testRepo1,testRepo2,mixedRepo1,mixedRepo2,withDeletedProductRepo,validRepo,emptyProductRepo,invalidProductRepo1,invalidProductRepo2,deletedProductRepo');
$repoTable->gen(13);
su('admin');
$repo = new repoTest();
r($repo->getProductsByRepoTest(0)) && p() && e('0'); // 空的数据
r($repo->getProductsByRepoTest(6)) && p() && e('0'); // 不存在的数据
r($repo->getProductsByRepoTest(1)) && p('1') && e('正常产品1'); // 存在的数据
r($repo->getProductsByRepoTest(4)) && p() && e('0'); // 产品不存在的数据
r($repo->getProductsByRepoTest(0)) && p() && e('0'); // 步骤1:无效代码库ID(0)
r($repo->getProductsByRepoTest(99)) && p() && e('0'); // 步骤2:不存在的代码库ID(99)
r($repo->getProductsByRepoTest(1)) && p('1') && e('正常产品1'); // 步骤3:单个产品关联(product=1)
r($repo->getProductsByRepoTest(5)) && p('2') && e('正常产品2'); // 步骤4:多个产品关联(product=2)
r($repo->getProductsByRepoTest(8)) && p('4') && e('正常产品4'); // 步骤5:过滤已删除产品(product=4)
r($repo->getProductsByRepoTest(10)) && p() && e('0'); // 步骤6:产品字段为空(product='')
r($repo->getProductsByRepoTest(11)) && p() && e('0'); // 步骤7:关联不存在产品(product=10)
r($repo->getProductsByRepoTest(13)) && p() && e('0'); // 步骤8:关联已删除产品(product=9,已删除)
@@ -0,0 +1,63 @@
title: product数据 for getProductsByRepo测试
desc: 为getProductsByRepo方法测试提供测试数据
author: Claude
version: "1.0"
fields:
- field: id
range: 1-12
- field: program
range: 0,0,0,0,0,1,1,1,1,1,2,2
- field: name
fields:
- field: name1
range: "[]"
- field: name2
range: 正常产品1,正常产品2,正常产品3,正常产品4,正常产品5,正常产品6,正常产品7,正常产品8,已删除产品1,已删除产品2,不存在产品1,不存在产品2
- field: name3
range: "[]"
- field: code
fields:
- field: code1
range: code
- field: code2
range: 1,2,3,4,5,6,7,8,9,10,11,12
- field: shadow
range: 0
- field: line
range: 0
- field: type
range: normal,normal,normal,normal,normal,branch,branch,platform,normal,normal,normal,normal
- field: status
range: normal,normal,normal,normal,normal,normal,normal,normal,closed,closed,normal,normal
- field: subStatus
range: "[]"
- field: PMT
range: "[]"
- field: desc
range: "[]"
- field: PO
range: admin
- field: QD
range: admin
- field: RD
range: admin
- field: feedback
range: admin
- field: acl
range: open
- field: whitelist
range: "[]"
- field: reviewer
range: "[]"
- field: createdBy
range: admin
- field: createdDate
range: "`2024-01-01 00:00:00`"
- field: createdVersion
range: "[]"
- field: order
range: 1-12
- field: vision
range: rnd
- field: deleted
range: 0,0,0,0,0,0,0,0,1,1,0,0
@@ -0,0 +1,53 @@
title: repo数据 for getProductsByRepo测试
desc: 为getProductsByRepo方法测试提供测试数据
author: Claude
version: "1.0"
fields:
- field: id
range: 1-12
- field: product
range: "1,2,3,1,2,2,3,4,5,[],10,99"
- field: projects
range: 1-12
- field: name
range: singleProductRepo,multiProductRepo1,multiProductRepo2,testRepo1,testRepo2,mixedRepo1,mixedRepo2,withDeletedProductRepo,validRepo,emptyProductRepo,invalidProductRepo1,invalidProductRepo2
- field: path
range: "/repo/single,/repo/multi1,/repo/multi2,/repo/test1,/repo/test2,/repo/mixed1,/repo/mixed2,/repo/deleted,/repo/valid,/repo/empty,/repo/invalid1,/repo/invalid2"
- field: SCM
range: Git,Git,Git,Gitlab,Gitlab,Gitea,Gitea,Git,Git,Git,Subversion,Subversion
- field: prefix
range: "[]"
- field: encoding
range: utf-8
- field: client
range: git,git,git,git,git,git,git,git,git,git,svn,svn
- field: serviceHost
range: 0
- field: serviceProject
range: "[]"
- field: commits
range: 0
- field: account
range: "[]"
- field: password
range: "[]"
- field: encrypt
range: plain
- field: acl
range: "[]"
- field: synced
range: 1
- field: lastSync
range: "`2024-01-01 00:00:00`"
- field: lastCommit
range: "`2024-01-01 00:00:00`"
- field: desc
range: "[]"
- field: extra
range: 0
- field: preMerge
range: 0
- field: job
range: 0
- field: deleted
range: 0,0,0,0,0,0,0,0,0,0,0,0