+ [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:
Regular → Executable
+55
-9
@@ -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:测试多次删除同一发布(幂等性验证)
|
||||
Reference in New Issue
Block a user