znt/module/bug/test/zen/afterupdate.php

193 lines
5 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=测试 bugZen::afterUpdate();
timeout=0
cid=15423
- 执行bugTest模块的afterUpdateTest方法参数是$bug1, $oldBug1 @1
- 执行$result2 && $afterActionCount > $beforeActionCount @1
- 执行bugTest模块的afterUpdateTest方法参数是$bug3, $oldBug3 @1
- 执行bugTest模块的afterUpdateTest方法参数是$bug4, $oldBug4 @1
- 执行bugTest模块的afterUpdateTest方法参数是$bug5, $oldBug5 @1
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/zen.class.php';
// 准备bug测试数据
$bug = zenData('bug');
$bug->id->range('1-10');
$bug->product->range('1');
$bug->execution->range('0{5},101{5}');
$bug->status->range('active{5},resolved{3},closed{2}');
$bug->resolvedBuild->range('0{5},1{3},2{2}');
$bug->plan->range('0{5},1{3},2{2}');
$bug->resolvedBy->range('[]{5},admin{3},user1{2}');
$bug->relatedBug->range('[]{10}');
$bug->feedback->range('0{10}');
$bug->gen(10);
// 准备build测试数据
$build = zenData('build');
$build->id->range('1-5');
$build->product->range('1');
$build->execution->range('101');
$build->name->range('Build 1,Build 2,Build 3,Build 4,Build 5');
$build->bugs->range('[]{5}');
$build->gen(5);
// 准备productplan测试数据
$plan = zenData('productplan');
$plan->id->range('1-5');
$plan->product->range('1');
$plan->title->range('Plan 1,Plan 2,Plan 3,Plan 4,Plan 5');
$plan->status->range('wait{2},doing{2},done{1}');
$plan->gen(5);
// 准备execution测试数据
$execution = zenData('project');
$execution->id->range('101-105');
$execution->type->range('sprint');
$execution->status->range('doing');
$execution->gen(5);
// 准备action测试数据,初始化为空
$action = zenData('action');
$action->gen(0);
su('admin');
global $tester;
$bugTest = new bugZenTest();
// 测试1:更新resolvedBuild字段,验证build关联
$bug1 = new stdclass();
$bug1->id = 1;
$bug1->product = 1;
$bug1->execution = 0;
$bug1->status = 'resolved';
$bug1->resolvedBuild = '2';
$bug1->plan = 0;
$bug1->resolvedBy = 'admin';
$bug1->relatedBug = '';
$bug1->feedback = 0;
$oldBug1 = new stdclass();
$oldBug1->id = 1;
$oldBug1->product = 1;
$oldBug1->execution = 0;
$oldBug1->status = 'active';
$oldBug1->resolvedBuild = '1';
$oldBug1->plan = 0;
$oldBug1->resolvedBy = '';
$oldBug1->relatedBug = '';
$oldBug1->feedback = 0;
r($bugTest->afterUpdateTest($bug1, $oldBug1)) && p() && e('1');
// 测试2:更新plan字段,验证产品计划变更历史
$bug2 = new stdclass();
$bug2->id = 2;
$bug2->product = 1;
$bug2->execution = 0;
$bug2->status = 'active';
$bug2->resolvedBuild = '0';
$bug2->plan = 2;
$bug2->resolvedBy = '';
$bug2->relatedBug = '';
$bug2->feedback = 0;
$oldBug2 = new stdclass();
$oldBug2->id = 2;
$oldBug2->product = 1;
$oldBug2->execution = 0;
$oldBug2->status = 'active';
$oldBug2->resolvedBuild = '0';
$oldBug2->plan = 1;
$oldBug2->resolvedBy = '';
$oldBug2->relatedBug = '';
$oldBug2->feedback = 0;
$beforeActionCount = $tester->dao->select('count(*) as count')->from(TABLE_ACTION)->fetch('count');
$result2 = $bugTest->afterUpdateTest($bug2, $oldBug2);
$afterActionCount = $tester->dao->select('count(*) as count')->from(TABLE_ACTION)->fetch('count');
r($result2 && $afterActionCount > $beforeActionCount) && p() && e('1');
// 测试3:更新status字段且有execution,验证看板泳道更新
$bug3 = new stdclass();
$bug3->id = 6;
$bug3->product = 1;
$bug3->execution = 101;
$bug3->status = 'resolved';
$bug3->resolvedBuild = '0';
$bug3->plan = 0;
$bug3->resolvedBy = 'admin';
$bug3->relatedBug = '';
$bug3->feedback = 0;
$oldBug3 = new stdclass();
$oldBug3->id = 6;
$oldBug3->product = 1;
$oldBug3->execution = 101;
$oldBug3->status = 'active';
$oldBug3->resolvedBuild = '0';
$oldBug3->plan = 0;
$oldBug3->resolvedBy = '';
$oldBug3->relatedBug = '';
$oldBug3->feedback = 0;
r($bugTest->afterUpdateTest($bug3, $oldBug3)) && p() && e('1');
// 测试4:更新resolvedBy字段,验证积分奖励
$bug4 = new stdclass();
$bug4->id = 4;
$bug4->product = 1;
$bug4->execution = 0;
$bug4->status = 'resolved';
$bug4->resolvedBuild = '0';
$bug4->plan = 0;
$bug4->resolvedBy = 'admin';
$bug4->relatedBug = '';
$bug4->feedback = 0;
$oldBug4 = new stdclass();
$oldBug4->id = 4;
$oldBug4->product = 1;
$oldBug4->execution = 0;
$oldBug4->status = 'active';
$oldBug4->resolvedBuild = '0';
$oldBug4->plan = 0;
$oldBug4->resolvedBy = '';
$oldBug4->relatedBug = '';
$oldBug4->feedback = 0;
r($bugTest->afterUpdateTest($bug4, $oldBug4)) && p() && e('1');
// 测试5:普通更新,不涉及特殊字段变更
$bug5 = new stdclass();
$bug5->id = 5;
$bug5->product = 1;
$bug5->execution = 0;
$bug5->status = 'active';
$bug5->resolvedBuild = '0';
$bug5->plan = 0;
$bug5->resolvedBy = '';
$bug5->relatedBug = '';
$bug5->feedback = 0;
$oldBug5 = new stdclass();
$oldBug5->id = 5;
$oldBug5->product = 1;
$oldBug5->execution = 0;
$oldBug5->status = 'active';
$oldBug5->resolvedBuild = '0';
$oldBug5->plan = 0;
$oldBug5->resolvedBy = '';
$oldBug5->relatedBug = '';
$oldBug5->feedback = 0;
r($bugTest->afterUpdateTest($bug5, $oldBug5)) && p() && e('1');