* [misc] Enhance unit tests for programplanModel::isTopStage() 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:28 +08:00
co-authored by Claude
parent 8db264192b
commit cfb53721bb
2 changed files with 58 additions and 9 deletions
+25 -9
View File
@@ -3,12 +3,17 @@
/**
title=测试programplanModel->isTopStage();
title=测试 programplanModel::isTopStage();
timeout=0
cid=0
- 测试id为2判断是否为顶级阶段 @1
- 测试id为4判断是否为顶级阶段 @0
- 测试id为5判断是否为顶级阶段 @1
- 测试父项目类型为project的阶段ID=3 @1
- 测试父项目类型为project的阶段ID=5 @1
- 测试父项目类型为stage的阶段ID=7 @0
- 测试不存在的阶段ID=999 @0
- 测试无效的阶段ID=0 @0
- 测试父项目类型为stage的阶段ID=8 @0
- 测试负数的阶段ID=-1 @0
*/
@@ -18,10 +23,21 @@ include dirname(__FILE__, 2) . '/lib/programplan.unittest.class.php';
zenData('user')->gen(5);
su('admin');
zenData('project')->loadYaml('istopstage')->gen(5);
$projectTable = zenData('project');
$projectTable->id->range('1-10');
$projectTable->type->range('program{1},project{1},stage{1},project{1},stage{3},sprint{1},stage{2}');
$projectTable->parent->range('0{1},0{1},2{1},0{1},4{1},2{1},3{1},6{1},7{1},8{1}');
$projectTable->name->range('项目集1,项目1,阶段1,项目2,阶段2,阶段3,阶段4,阶段5,阶段6,阶段7');
$projectTable->status->range('wait{2},doing{4},suspended{2},closed{2}');
$projectTable->deleted->range('0');
$projectTable->gen(10);
$plan = new programplanTest();
$programplanTest = new programplanTest();
r($plan->isTopStageTest(2)) && p('') && e('1'); // 测试id为2判断是否为顶级阶段
r($plan->isTopStageTest(4)) && p('') && e('0'); // 测试id为4判断是否为顶级阶段
r($plan->isTopStageTest(5)) && p('') && e('1'); // 测试id为5判断是否为顶级阶段
r($programplanTest->isTopStageTest(3)) && p('') && e('1'); // 测试父项目类型为project的阶段ID=3
r($programplanTest->isTopStageTest(5)) && p('') && e('1'); // 测试父项目类型为project的阶段ID=5
r($programplanTest->isTopStageTest(7)) && p('') && e('0'); // 测试父项目类型为stage的阶段ID=7
r($programplanTest->isTopStageTest(999)) && p('') && e('0'); // 测试不存在的阶段ID=999
r($programplanTest->isTopStageTest(0)) && p('') && e('0'); // 测试无效的阶段ID=0
r($programplanTest->isTopStageTest(8)) && p('') && e('0'); // 测试父项目类型为stage的阶段ID=8
r($programplanTest->isTopStageTest(-1)) && p('') && e('0'); // 测试负数的阶段ID=-1
@@ -0,0 +1,33 @@
---
title: project table for isTopStage method test
author: Claude
version: "1.0"
fields:
- field: id
range: 1-10
- field: project
range: 0{3},1{2},2{2},3{1},4{1},5{1}
- field: type
range: program{3},project{3},stage{3},sprint{1}
- field: parent
range: 0{3},1{3},2{2},3{1},4{1}
- field: name
fields:
- field: name1
range: 顶级项目集{3},子项目{3},子阶段{3},迭代{1}
- field: name2
range: 1-10
- field: path
fields:
- field: path1
prefix: ","
range: 1-10
- field: path2
prefix: ","
range: "[]{3},11-100"
postfix: ","
- field: status
range: wait{2},doing{4},suspended{2},closed{2}
- field: deleted
range: 0