znt/module/convert/test/tao/processbuilinfielddata.php

157 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=测试 convertTao::processBuildinFieldData();
timeout=0
cid=15867
- 执行convertTest模块的processBuildinFieldDataTest方法参数是$module, $data, $object, $relations
- 属性title @Test Story Title
- 属性pri @2
- 属性spec @Test story description
- 执行convertTest模块的processBuildinFieldDataTest方法参数是$module, $data, $object, $relations 属性bugreporter @jira_user_key
- 执行convertTest模块的processBuildinFieldDataTest方法参数是$module, $data, $object, $relations
- 属性tasktimeoriginalestimate @2
- 属性tasktimespent @1
- 执行convertTest模块的processBuildinFieldDataTest方法参数是$module, $data, $object, $relations
- 属性title @Critical Bug
- 属性severity @1
- 属性assignedTo @developer
- 属性existing_field @keep_this
- 执行$result @1
- 执行convertTest模块的processBuildinFieldDataTest方法参数是$module, $data, $object, $relations 属性pre_existing @original_value
- 执行convertTest模块的processBuildinFieldDataTest方法参数是$module, $data, $object, $relations
- 属性mapped_field_1 @custom_value_1
- 属性mapped_field_2 @custom_value_2
- 属性storyreporter @reporter_key
- 属性storytimeoriginalestimate @4
- 属性existing_data @preserve_this
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/tao.class.php';
su('admin');
$convertTest = new convertTaoTest();
// 测试步骤1正常处理zentaoField字段映射
$module = 'story';
$data = new stdclass();
$data->issuetype = 'Story';
$data->summary = 'Test Story Title';
$data->priority = '2';
$data->description = 'Test story description';
$object = new stdclass();
$relations = array(
'zentaoFieldStory' => array(
'summary' => 'title',
'priority' => 'pri',
'description' => 'spec'
)
);
r($convertTest->processBuildinFieldDataTest($module, $data, $object, $relations)) && p('title,pri,spec') && e('Test Story Title,2,Test story description');
// 测试步骤2测试buildinFields的reporter字段特殊处理
$module = 'bug';
$data = new stdclass();
$data->issuetype = 'Bug';
$data->reporter = 'jira_user_key';
$object = new stdclass();
$relations = array();
r($convertTest->processBuildinFieldDataTest($module, $data, $object, $relations)) && p('bugreporter') && e('jira_user_key');
// 测试步骤3测试buildinFields的时间字段转换
$module = 'task';
$data = new stdclass();
$data->issuetype = 'Task';
$data->timeoriginalestimate = 7200; // 2小时=7200秒
$data->timespent = 3600; // 1小时=3600秒
$object = new stdclass();
$relations = array();
r($convertTest->processBuildinFieldDataTest($module, $data, $object, $relations)) && p('tasktimeoriginalestimate,tasktimespent') && e('2,1');
// 测试步骤4测试多字段映射同时处理
$module = 'bug';
$data = new stdclass();
$data->issuetype = 'Bug';
$data->bug_title = 'Critical Bug';
$data->bug_priority = '1';
$data->bug_assignee = 'developer';
$object = new stdclass();
$object->existing_field = 'keep_this';
$relations = array(
'zentaoFieldBug' => array(
'bug_title' => 'title',
'bug_priority' => 'severity',
'bug_assignee' => 'assignedTo'
)
);
r($convertTest->processBuildinFieldDataTest($module, $data, $object, $relations)) && p('title,severity,assignedTo,existing_field') && e('Critical Bug,1,developer,keep_this');
// 测试步骤5测试buildinFlow参数控制字段处理
$module = 'story';
$data = new stdclass();
$data->issuetype = 'Story';
$data->summary = 'Flow Control Test';
$object = new stdclass();
$relations = array();
$result = $convertTest->processBuildinFieldDataTest($module, $data, $object, $relations, true);
r(is_object($result)) && p() && e(1);
// 测试步骤6测试空数据和关系处理
$module = 'task';
$data = new stdclass();
$data->issuetype = 'Task';
$data->empty_field = '';
$data->null_field = null;
$object = new stdclass();
$object->pre_existing = 'original_value';
$relations = array(
'zentaoFieldTask' => array(
'empty_field' => 'mapped_empty',
'null_field' => 'mapped_null',
'missing_field' => 'mapped_missing'
)
);
r($convertTest->processBuildinFieldDataTest($module, $data, $object, $relations)) && p('pre_existing') && e('original_value');
// 测试步骤7测试复合场景综合处理
$module = 'story';
$data = new stdclass();
$data->issuetype = 'Story';
$data->custom_field_1 = 'custom_value_1';
$data->custom_field_2 = 'custom_value_2';
$data->reporter = 'reporter_key';
$data->timeoriginalestimate = 14400; // 4小时
$object = new stdclass();
$object->existing_data = 'preserve_this';
$relations = array(
'zentaoFieldStory' => array(
'custom_field_1' => 'mapped_field_1',
'custom_field_2' => 'mapped_field_2'
)
);
r($convertTest->processBuildinFieldDataTest($module, $data, $object, $relations)) && p('mapped_field_1,mapped_field_2,storyreporter,storytimeoriginalestimate,existing_data') && e('custom_value_1,custom_value_2,reporter_key,4,preserve_this');