diff --git a/module/chart/test/lib/chart.unittest.class.php b/module/chart/test/lib/chart.unittest.class.php index aa666018b3..1ab26604b4 100644 --- a/module/chart/test/lib/chart.unittest.class.php +++ b/module/chart/test/lib/chart.unittest.class.php @@ -5,6 +5,7 @@ class chartTest { global $tester; $this->objectModel = $tester->loadModel('chart'); + $this->objectTao = $tester->loadTao('chart'); } /** @@ -685,4 +686,26 @@ class chartTest return $result; } + + /** + * Test switchFieldName method. + * + * @param array $fields + * @param array $langs + * @param array $metrics + * @param string $index + * @access public + * @return string + */ + public function switchFieldNameTest(array $fields, array $langs, array $metrics, string $index): string + { + $reflection = new ReflectionClass($this->objectTao); + $method = $reflection->getMethod('switchFieldName'); + $method->setAccessible(true); + + $result = $method->invoke($this->objectTao, $fields, $langs, $metrics, $index); + if(dao::isError()) return dao::getError(); + + return $result; + } } diff --git a/module/chart/test/tao/switchfieldname.php b/module/chart/test/tao/switchfieldname.php new file mode 100755 index 0000000000..e25a6eb2a7 --- /dev/null +++ b/module/chart/test/tao/switchfieldname.php @@ -0,0 +1,93 @@ +#!/usr/bin/env php + array('name' => '状态字段'), + 'priority' => array('name' => '优先级字段') +); +$langs1 = array(); +$metrics1 = array('status', 'priority'); +r($chartTest->switchFieldNameTest($fields1, $langs1, $metrics1, '0')) && p() && e('状态字段'); + +// 测试步骤2:关联对象字段名称转换 +$fields2 = array( + 'bugStatus' => array( + 'name' => '默认状态名', + 'object' => 'bug', + 'field' => 'status' + ) +); +$langs2 = array(); +$metrics2 = array('bugStatus'); +r($chartTest->switchFieldNameTest($fields2, $langs2, $metrics2, '0')) && p() && e('Bug状态'); + +// 测试步骤3:客户端语言优先级 +$fields3 = array( + 'taskName' => array( + 'name' => '默认任务名', + 'object' => 'task', + 'field' => 'name' + ) +); +$langs3 = array( + 'taskName' => array( + 'zh-cn' => '中文任务名称', + 'en' => 'English Task Name' + ) +); +$metrics3 = array('taskName'); +r($chartTest->switchFieldNameTest($fields3, $langs3, $metrics3, '0')) && p() && e('中文任务名称'); + +// 测试步骤4:空语言配置处理 +$fields4 = array( + 'emptyField' => array( + 'name' => '空字段配置', + 'object' => 'nonexistent', + 'field' => 'nonexistent' + ) +); +$langs4 = array(); +$metrics4 = array('emptyField'); +r($chartTest->switchFieldNameTest($fields4, $langs4, $metrics4, '0')) && p() && e('空字段配置'); + +// 测试步骤5:复杂场景综合测试 +$fields5 = array( + 'complexField' => array( + 'name' => '默认字段名', + 'object' => 'project', + 'field' => 'name' + ), + 'simpleField' => array( + 'name' => '简单字段名' + ) +); +$langs5 = array( + 'complexField' => array( + 'zh-cn' => '项目名称中文', + 'en' => 'Project Name EN' + ) +); +$metrics5 = array('complexField', 'simpleField'); +r($chartTest->switchFieldNameTest($fields5, $langs5, $metrics5, '0')) && p() && e('项目名称中文'); \ No newline at end of file