+ [misc] Add unit tests for buildZen::assignBugVarsForView() method

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-11-12 08:25:38 +08:00
co-authored by Claude
parent 52690eabb8
commit b381ea958a
4 changed files with 711 additions and 0 deletions
+52
View File
@@ -0,0 +1,52 @@
<?php
declare(strict_types = 1);
require_once dirname(__FILE__, 5) . '/test/lib/test.class.php';
class buildZenTest extends baseTest
{
protected $moduleName = 'build';
protected $className = 'zen';
/**
* Test assignBugVarsForView method.
*
* @param object $build
* @param string $type
* @param string $sort
* @param string $param
* @param object $bugPager
* @param object $generatedBugPager
* @access public
* @return array
*/
public function assignBugVarsForViewTest($build = null, $type = '', $sort = '', $param = '', $bugPager = null, $generatedBugPager = null)
{
if($bugPager === null)
{
$bugPager = new stdclass();
$bugPager->recTotal = 0;
$bugPager->pageTotal = 1;
}
if($generatedBugPager === null)
{
$generatedBugPager = new stdclass();
$generatedBugPager->recTotal = 0;
$generatedBugPager->pageTotal = 1;
}
$this->invokeArgs('assignBugVarsForView', [$build, $type, $sort, $param, $bugPager, $generatedBugPager]);
if(dao::isError()) return dao::getError();
return array(
'type' => $this->instance->view->type ?? '',
'param' => $this->instance->view->param ?? '',
'bugs' => $this->instance->view->bugs ?? array(),
'generatedBugs' => $this->instance->view->generatedBugs ?? array(),
'hasBugPager' => isset($this->instance->view->bugPager),
'hasGeneratedPager' => isset($this->instance->view->generatedBugPager)
);
}
}
+71
View File
@@ -0,0 +1,71 @@
#!/usr/bin/env php
<?php
/**
title=测试 buildZen::assignBugVarsForView();
timeout=0
cid=0
- 执行buildTest模块的assignBugVarsForViewTest方法,参数是$buildObj, 'bug', 'id_desc', '', $bugPager, $generatedBugPager 属性type @bug
- 执行buildTest模块的assignBugVarsForViewTest方法,参数是$buildObj, 'generatedBug', 'id_desc', '1', $bugPager, $generatedBugPager 属性type @generatedBug
- 执行buildTest模块的assignBugVarsForViewTest方法,参数是$buildObj, 'bug', 'id_desc', 'test', $bugPager, $generatedBugPager 属性param @test
- 执行buildTest模块的assignBugVarsForViewTest方法,参数是$buildObj, '', '', '', $bugPager, $generatedBugPager 属性type @~~
- 执行buildTest模块的assignBugVarsForViewTest方法,参数是$buildObj, 'bug', 'id_desc', '', $bugPager, $generatedBugPager 属性hasBugPager @1
- 执行buildTest模块的assignBugVarsForViewTest方法,参数是$buildObj, 'generatedBug', 'id_desc', '', $bugPager, $generatedBugPager 属性hasGeneratedPager @1
- 执行buildTest模块的assignBugVarsForViewTest方法,参数是$buildObj, 'bug', 'status_asc', '', $bugPager, $generatedBugPager 属性type @bug
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/zen.class.php';
$bug = zenData('bug');
$bug->id->range('1-20');
$bug->product->range('1-3');
$bug->execution->range('1-5');
$bug->title->range('Bug 1-20')->prefix('Bug ');
$bug->status->range('active{10},resolved{5},closed{5}');
$bug->gen(20);
$build = zenData('build');
$build->id->range('1-10');
$build->product->range('1-3');
$build->project->range('1-3');
$build->execution->range('1-5');
$build->name->range('Build 1-10')->prefix('Build ');
$build->gen(10);
zenData('product')->gen(5);
zenData('project')->gen(5);
zenData('user')->gen(5);
global $tester;
$tester->app->loadClass('pager', true);
$tester->app->rawModule = 'build';
$tester->app->rawMethod = 'view';
su('admin');
$buildTest = new buildZenTest();
$buildObj = new stdclass();
$buildObj->id = 1;
$buildObj->project = 1;
$buildObj->product = 1;
$buildObj->branch = 0;
$buildObj->execution = 1;
$buildObj->name = 'Test Build';
$buildObj->allBugs = '1,2,3,4,5';
$buildObj->builds = '';
$bugPager = new pager(0, 10, 1);
$generatedBugPager = new pager(0, 10, 1);
r($buildTest->assignBugVarsForViewTest($buildObj, 'bug', 'id_desc', '', $bugPager, $generatedBugPager)) && p('type') && e('bug');
r($buildTest->assignBugVarsForViewTest($buildObj, 'generatedBug', 'id_desc', '1', $bugPager, $generatedBugPager)) && p('type') && e('generatedBug');
r($buildTest->assignBugVarsForViewTest($buildObj, 'bug', 'id_desc', 'test', $bugPager, $generatedBugPager)) && p('param') && e('test');
r($buildTest->assignBugVarsForViewTest($buildObj, '', '', '', $bugPager, $generatedBugPager)) && p('type') && e('~~');
r($buildTest->assignBugVarsForViewTest($buildObj, 'bug', 'id_desc', '', $bugPager, $generatedBugPager)) && p('hasBugPager') && e('1');
r($buildTest->assignBugVarsForViewTest($buildObj, 'generatedBug', 'id_desc', '', $bugPager, $generatedBugPager)) && p('hasGeneratedPager') && e('1');
r($buildTest->assignBugVarsForViewTest($buildObj, 'bug', 'status_asc', '', $bugPager, $generatedBugPager)) && p('type') && e('bug');
@@ -0,0 +1,448 @@
---
title: Bug数据定义
desc: 用于测试 assignBugVarsForView 方法的Bug数据
author: Claude
version: 1.0
fields:
- field: id
note: Bug ID
range: 1-20
prefix: ""
postfix: ""
loop: 0
format: ""
- field: project
note: 项目ID
range: 1-5
prefix: ""
postfix: ""
loop: 0
format: ""
- field: product
note: 产品ID
range: 1-3
prefix: ""
postfix: ""
loop: 0
format: ""
- field: injection
note: 注入阶段
range: '[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: identify
note: 识别阶段
range: '[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: branch
note: 分支ID
range: '0'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: module
note: 所属模块
range: '0'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: execution
note: 执行ID
range: 1-10
prefix: ""
postfix: ""
loop: 0
format: ""
- field: plan
note: 计划ID
range: '0'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: story
note: 相关需求ID
range: '0'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: storyVersion
note: 需求版本
range: '1'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: task
note: 相关任务ID
range: '0'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: toTask
note: 转任务ID
range: '0'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: toStory
note: 转需求ID
range: '0'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: title
note: Bug标题
range: 'Bug Title {5}'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: keywords
note: 关键字
range: '[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: severity
note: 严重程度
range: 1-4
prefix: ""
postfix: ""
loop: 0
format: ""
- field: pri
note: 优先级
range: 1-4
prefix: ""
postfix: ""
loop: 0
format: ""
- field: type
note: Bug类型
range: 'codeerror,config,install,security,performance'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: os
note: 操作系统
range: 'all,windows,linux,unix,mac,ios,android'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: browser
note: 浏览器
range: 'all,chrome,firefox,ie,edge,safari,opera'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: hardware
note: 硬件
range: '[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: found
note: 发现来源
range: '[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: steps
note: 重现步骤
range: 'Step 1\nStep 2\nStep 3'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: status
note: Bug状态
range: 'active{8},resolved{5},closed{7}'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: subStatus
note: 子状态
range: '[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: color
note: 颜色标记
range: '[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: confirmed
note: 是否确认
range: '0,1'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: activatedCount
note: 激活次数
range: '0-3'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: activatedDate
note: 激活日期
range: '[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: feedbackBy
note: 反馈人
range: '[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: notifyEmail
note: 通知邮箱
range: '[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: mailto
note: 抄送给
range: '[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: openedBy
note: 由谁创建
range: 'admin,user1,user2'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: openedDate
note: 创建日期
range: (Y)-(M)-(D) 00:00:00
prefix: ""
postfix: ""
loop: 0
format: ""
- field: openedBuild
note: 影响版本
range: '1-5'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: assignedTo
note: 指派给
range: 'admin,user1,user2,[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: assignedDate
note: 指派日期
range: '(Y)-(M)-(D) 00:00:00,[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: deadline
note: 截止日期
range: '[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: resolvedBy
note: 解决者
range: 'admin,user1,[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: resolution
note: 解决方案
range: 'fixed,postponed,willnotfix,bydesign,duplicate,[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: resolvedBuild
note: 解决版本
range: '1-5,[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: resolvedDate
note: 解决日期
range: '(Y)-(M)-(D) 00:00:00,[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: closedBy
note: 由谁关闭
range: 'admin,[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: closedDate
note: 关闭日期
range: '(Y)-(M)-(D) 00:00:00,[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: duplicateBug
note: 重复Bug ID
range: '0'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: linkBug
note: 相关Bug
range: '[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: linkPlan
note: 相关计划
range: '[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: case
note: 相关用例ID
range: '0'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: caseVersion
note: 用例版本
range: '1'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: result
note: 测试结果ID
range: '0'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: repo
note: 代码仓库ID
range: '0'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: mr
note: 合并请求ID
range: '0'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: entry
note: 应用入口
range: '[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: lines
note: 代码行数
range: '[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: v1
note: v1版本
range: '[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: v2
note: v2版本
range: '[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: repoType
note: 仓库类型
range: '[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: testtask
note: 测试单ID
range: '0'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: lastEditedBy
note: 最后修改者
range: '[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: lastEditedDate
note: 最后修改日期
range: '[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: deleted
note: 是否删除
range: '0'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: priOrder
note: 优先级排序
range: '1-20'
prefix: ""
postfix: ""
loop: 0
format: ""
@@ -0,0 +1,140 @@
---
title: Build数据定义
desc: 用于测试 assignBugVarsForView 方法的版本数据
author: Claude
version: 1.0
fields:
- field: id
note: 版本ID
range: 1-10
prefix: ""
postfix: ""
loop: 0
format: ""
- field: project
note: 项目ID
range: 1-5
prefix: ""
postfix: ""
loop: 0
format: ""
- field: product
note: 产品ID
range: 1-3
prefix: ""
postfix: ""
loop: 0
format: ""
- field: branch
note: 分支ID
range: '0'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: execution
note: 执行ID
range: 1-10
prefix: ""
postfix: ""
loop: 0
format: ""
- field: builds
note: 关联的版本ID列表
range: '[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: name
note: 版本名称
range: 'build{3}'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: system
note: 子系统ID
range: '0'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: scmPath
note: 代码库路径
range: '[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: filePath
note: 文件路径
range: '[]'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: date
note: 打包日期
range: (Y)-(M)-(D)
prefix: ""
postfix: ""
loop: 0
format: ""
- field: stories
note: 包含的需求
range: '1,2,3'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: bugs
note: 包含的Bug
range: '1,2,3,4,5'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: artifactRepoID
note: 制品库ID
range: '0'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: builder
note: 构建者
range: 'admin'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: desc
note: 描述信息
range: 'This is a test build{3}'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: createdBy
note: 创建者
range: 'admin'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: createdDate
note: 创建时间
range: (Y)-(M)-(D) 00:00:00
prefix: ""
postfix: ""
loop: 0
format: ""
- field: deleted
note: 是否删除
range: '0'
prefix: ""
postfix: ""
loop: 0
format: ""