diff --git a/module/convert/test/lib/convert.unittest.class.php b/module/convert/test/lib/convert.unittest.class.php index 13a1aad585..fe5d548c24 100644 --- a/module/convert/test/lib/convert.unittest.class.php +++ b/module/convert/test/lib/convert.unittest.class.php @@ -3273,4 +3273,25 @@ class convertTest return $result; } + /** + * Test processBuildinFieldData method. + * + * @param string $module + * @param object $data + * @param object $object + * @param array $relations + * @param bool $buildinFlow + * @access public + * @return mixed + */ + public function processBuildinFieldDataTest($module = null, $data = null, $object = null, $relations = array(), $buildinFlow = false) + { + if($module === null || $data === null || $object === null) return false; + + $result = $this->objectTao->processBuildinFieldData($module, $data, $object, $relations, $buildinFlow); + if(dao::isError()) return dao::getError(); + + return $result; + } + } diff --git a/module/convert/test/tao/processbulidinfielddata.php b/module/convert/test/tao/processbulidinfielddata.php new file mode 100755 index 0000000000..b060cf7def --- /dev/null +++ b/module/convert/test/tao/processbulidinfielddata.php @@ -0,0 +1,103 @@ +#!/usr/bin/env php +issuetype = 'Story'; +$data1->customfield_10001 = 'test_value'; + +$object1 = new stdclass(); + +$relations1 = array( + 'zentaoFieldStory' => array( + 'customfield_10001' => 'custom_field_1' + ) +); + +r($convertTest->processBuildinFieldDataTest('story', $data1, $object1, $relations1)) && p('custom_field_1') && e('test_value'); + +// 测试步骤2:空关系数组处理 +$data2 = new stdclass(); +$data2->issuetype = 'Story'; +$object2 = new stdclass(); +$object2->existing_field = 'existing_value'; + +$relations2 = array(); + +r($convertTest->processBuildinFieldDataTest('story', $data2, $object2, $relations2)) && p('existing_field') && e('existing_value'); + +// 测试步骤3:无匹配字段处理 +$data3 = new stdclass(); +$data3->issuetype = 'Bug'; +$data3->unknown_field = 'unknown_value'; + +$object3 = new stdclass(); +$object3->existing_field = 'existing_value'; + +$relations3 = array( + 'zentaoFieldBug' => array( + 'different_field' => 'mapped_field' + ) +); + +r($convertTest->processBuildinFieldDataTest('bug', $data3, $object3, $relations3)) && p('existing_field') && e('existing_value'); + +// 测试步骤4:多字段同时映射 +$data4 = new stdclass(); +$data4->issuetype = 'Task'; +$data4->customfield_001 = 'value1'; +$data4->customfield_002 = 'value2'; +$data4->customfield_003 = 'value3'; + +$object4 = new stdclass(); + +$relations4 = array( + 'zentaoFieldTask' => array( + 'customfield_001' => 'field1', + 'customfield_002' => 'field2', + 'customfield_003' => 'field3' + ) +); + +r($convertTest->processBuildinFieldDataTest('task', $data4, $object4, $relations4)) && p('field1,field2,field3') && e('value1,value2,value3'); + +// 测试步骤5:空数据字段处理 +$data5 = new stdclass(); +$data5->issuetype = 'Epic'; +$data5->customfield_empty = ''; +$data5->customfield_filled = 'filled_value'; + +$object5 = new stdclass(); + +$relations5 = array( + 'zentaoFieldEpic' => array( + 'customfield_empty' => 'empty_field', + 'customfield_filled' => 'filled_field' + ) +); + +r($convertTest->processBuildinFieldDataTest('epic', $data5, $object5, $relations5)) && p('filled_field') && e('filled_value'); \ No newline at end of file