znt/module/build/test/model/updatelinkedbug.php

66 lines
2.9 KiB
PHP
Executable file
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env php
<?php
/**
title=测试 buildModel::updateLinkedBug();
timeout=0
cid=15511
- 步骤1正常更新Bug状态第1条的status属性 @resolved
- 步骤2验证解决人设置第1条的resolvedBy属性 @admin
- 步骤3验证解决版本设置第1条的resolvedBuild属性 @1
- 步骤4空Bug列表测试 @0
- 步骤5已解决Bug不重复处理第11条的status属性 @resolved
- 步骤6已关闭Bug不重复处理第14条的status属性 @closed
- 步骤7无效Bug ID测试 @0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/model.class.php';
// 准备测试数据
$table = zenData('build');
$table->id->range('1-20');
$table->project->range('11,12,0{18}');
$table->product->range('1-3{7}');
$table->name->range('版本1,版本2,版本3{18}');
$table->gen(20);
$bugTable = zenData('bug');
$bugTable->id->range('1-20');
$bugTable->status->range('active{10},resolved{3},closed{2},active{5}');
$bugTable->resolution->range('[]{13},fixed{3},bydesign{2},[]{2}');
$bugTable->openedBy->range('admin,user1,user2{18}');
$bugTable->assignedTo->range('admin,dev1,test1{17}');
$bugTable->resolvedBy->range('[]{13},admin{3},user1{2},[]{2}');
$bugTable->resolvedBuild->range('[]{15},1{3},2{2}');
$bugTable->confirmed->range('0{10},1{10}');
$bugTable->gen(20);
zenData('user')->gen(5);
su('admin');
$build = new buildModelTest();
// 测试数据组合
$buildID = 1;
$validBugs = array(1, 2, 3);
$resolvedBugs = array(11, 12); // 已解决的Bug
$closedBugs = array(14, 15); // 已关闭的Bug
$invalidBugs = array(999, 1000); // 不存在的Bug
$mixedBugs = array(1, 11, 999); // 混合状态Bug
$emptyBugs = array();
$resolvedByList = array(1 => 'admin', 2 => 'user1', 3 => 'user2');
$partialResolvedBy = array(1 => 'admin');
r($build->updateLinkedBugTest($buildID, array('bugs' => $validBugs, 'resolvedBy' => $resolvedByList))) && p('1:status') && e('resolved'); // 步骤1正常更新Bug状态
r($build->updateLinkedBugTest($buildID, array('bugs' => $validBugs, 'resolvedBy' => $resolvedByList))) && p('1:resolvedBy') && e('admin'); // 步骤2验证解决人设置
r($build->updateLinkedBugTest($buildID, array('bugs' => $validBugs, 'resolvedBy' => $resolvedByList))) && p('1:resolvedBuild') && e('1'); // 步骤3验证解决版本设置
r($build->updateLinkedBugTest($buildID, array('bugs' => $emptyBugs, 'resolvedBy' => $resolvedByList))) && p() && e('0'); // 步骤4空Bug列表测试
r($build->updateLinkedBugTest($buildID, array('bugs' => $resolvedBugs, 'resolvedBy' => array()))) && p('11:status') && e('resolved'); // 步骤5已解决Bug不重复处理
r($build->updateLinkedBugTest($buildID, array('bugs' => $closedBugs, 'resolvedBy' => array()))) && p('14:status') && e('closed'); // 步骤6已关闭Bug不重复处理
r($build->updateLinkedBugTest($buildID, array('bugs' => $invalidBugs, 'resolvedBy' => array()))) && p() && e('0'); // 步骤7无效Bug ID测试