+ [misc] Enhance unit tests for releaseModel::delete() 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 1ba0635093
commit aa111e4854
4 changed files with 191 additions and 13 deletions
+55 -9
View File
@@ -1,24 +1,70 @@
#!/usr/bin/env php
<?php
/**
title=测试 releaseModel->delete();
title=测试 releaseModel::delete();
timeout=0
cid=1
cid=0
- 步骤1:测试删除无效ID(0)的发布 @0
- 步骤2:测试删除不存在ID的发布 @0
- 步骤3:测试删除存在的发布属性deleted @1
- 步骤4:测试删除有shadow构建的发布属性deleted @1
- 步骤5:测试删除有关联构建的发布属性deleted @1
- 步骤6:测试删除另一个有shadow构建的发布属性deleted @1
- 步骤7:测试多次删除同一发布(幂等性验证)属性alreadyDeleted @1
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/release.unittest.class.php';
zenData('build')->loadYaml('build')->gen(5);
zenData('release')->loadYaml('release')->gen(5);
// 准备测试数据 - 手动插入数据避免system字段问题
global $tester;
$dao = $tester->dao;
// 清理测试数据
$dao->delete()->from(TABLE_RELEASE)->where('id')->between(1, 10)->exec();
$dao->delete()->from(TABLE_BUILD)->where('id')->between(1, 10)->exec();
// 手动插入build数据
$buildData = array(
array('id' => '1', 'project' => '11', 'product' => '1', 'name' => '构建1', 'execution' => '0', 'date' => '2023-01-01', 'deleted' => '0'),
array('id' => '2', 'project' => '12', 'product' => '1', 'name' => '构建2', 'execution' => '0', 'date' => '2023-01-01', 'deleted' => '0'),
array('id' => '3', 'project' => '0', 'product' => '1', 'name' => '构建3', 'execution' => '0', 'date' => '2023-01-02', 'deleted' => '0'),
array('id' => '4', 'project' => '0', 'product' => '1', 'name' => '构建4', 'execution' => '0', 'date' => '2023-01-01', 'deleted' => '0'),
array('id' => '5', 'project' => '0', 'product' => '1', 'name' => '构建5', 'execution' => '101', 'date' => '2023-01-03', 'deleted' => '0')
);
foreach($buildData as $build)
{
$dao->insert(TABLE_BUILD)->data($build)->exec();
}
// 手动插入release数据
$releaseData = array(
array('id' => '1', 'project' => '11', 'product' => '1', 'name' => '发布1', 'build' => '1', 'shadow' => '0', 'status' => 'normal', 'deleted' => '0', 'createdDate' => '2023-01-01 10:00:00'),
array('id' => '2', 'project' => '12', 'product' => '1', 'name' => '发布2', 'build' => '2', 'shadow' => '2', 'status' => 'normal', 'deleted' => '0', 'createdDate' => '2023-01-01 10:00:00'),
array('id' => '3', 'project' => '0', 'product' => '1', 'name' => '发布3', 'build' => '3', 'shadow' => '0', 'status' => 'normal', 'deleted' => '0', 'createdDate' => '2023-01-02 10:00:00'),
array('id' => '4', 'project' => '0', 'product' => '1', 'name' => '发布4', 'build' => '4', 'shadow' => '4', 'status' => 'normal', 'deleted' => '0', 'createdDate' => '2023-01-01 10:00:00'),
array('id' => '5', 'project' => '0', 'product' => '2', 'name' => '发布5', 'build' => '5', 'shadow' => '0', 'status' => 'terminate', 'deleted' => '0', 'createdDate' => '2023-01-03 10:00:00')
);
foreach($releaseData as $release)
{
$dao->insert(TABLE_RELEASE)->data($release)->exec();
}
zenData('user')->gen(5);
su('admin');
$releases = array(0, 1, 6);
$releaseTester = new releaseTest();
r($releaseTester->deleteTest($releases[0])) && p() && e('0'); // 测试删除发布ID为0的发布
r($releaseTester->deleteTest($releases[1])) && p('deleted') && e('1'); // 测试删除发布ID为1的发布
r($releaseTester->deleteTest($releases[2])) && p() && e('0'); // 测试删除发布ID不存在的发布
r($releaseTester->deleteTest(0)) && p() && e('0'); // 步骤1:测试删除无效ID(0)的发布
r($releaseTester->deleteTest(999)) && p() && e('0'); // 步骤2:测试删除不存在ID的发布
r($releaseTester->deleteTest(1)) && p('deleted') && e('1'); // 步骤3:测试删除存在的发布
r($releaseTester->deleteTest(2)) && p('deleted') && e('1'); // 步骤4:测试删除有shadow构建的发布
r($releaseTester->deleteTest(3)) && p('deleted') && e('1'); // 步骤5:测试删除有关联构建的发布
r($releaseTester->deleteTest(4)) && p('deleted') && e('1'); // 步骤6:测试删除另一个有shadow构建的发布
r($releaseTester->deleteTest(1)) && p('alreadyDeleted') && e('1'); // 步骤7:测试多次删除同一发布(幂等性验证)