diff --git a/module/convert/test/lib/convert.unittest.class.php b/module/convert/test/lib/convert.unittest.class.php index 0d76bcb884..b30e2b7291 100644 --- a/module/convert/test/lib/convert.unittest.class.php +++ b/module/convert/test/lib/convert.unittest.class.php @@ -1049,4 +1049,19 @@ class convertTest return array(); } } + + /** + * Test object2Array method. + * + * @param object|array $parsedXML + * @access public + * @return array + */ + public function object2ArrayTest($parsedXML = null) + { + $result = $this->objectModel->object2Array($parsedXML); + if(dao::isError()) return dao::getError(); + + return $result; + } } \ No newline at end of file diff --git a/module/convert/test/model/object2array.php b/module/convert/test/model/object2array.php new file mode 100755 index 0000000000..80205420bd --- /dev/null +++ b/module/convert/test/model/object2array.php @@ -0,0 +1,71 @@ +#!/usr/bin/env php +name = 'test'; +$simpleObject->id = 123; +r($convertTest->object2ArrayTest($simpleObject)) && p('name,id') && e('test,123'); // 步骤1:正常对象转换 + +// 步骤2:测试复杂嵌套对象转换 +$complexObject = new stdClass(); +$complexObject->level1 = new stdClass(); +$complexObject->level1->level2 = new stdClass(); +$complexObject->level1->level2->value = 'nested'; +$complexObject->array = array('item1', 'item2'); +$result2 = $convertTest->object2ArrayTest($complexObject); +r($result2['level1']['level2']['value']) && p() && e('nested'); // 步骤2:嵌套对象转换 + +// 步骤3:测试包含空对象的转换 +$objectWithEmpty = new stdClass(); +$objectWithEmpty->name = 'test'; +$objectWithEmpty->empty = new stdClass(); +$result = $convertTest->object2ArrayTest($objectWithEmpty); +r(empty($result['empty']) && is_array($result['empty'])) && p() && e('1'); // 步骤3:空对象转换为空数组 + +// 步骤4:测试包含数组和对象混合的复杂结构 +$mixedStructure = array( + 'objects' => array( + 'obj1' => new stdClass(), + 'obj2' => (object)array('prop' => 'value') + ), + 'simple' => 'string' +); +$mixedStructure['objects']['obj1']->name = 'test1'; +$result4 = $convertTest->object2ArrayTest($mixedStructure); +r($result4['objects']['obj1']['name']) && p() && e('test1'); // 步骤4:混合结构转换 + +// 步骤5:测试已经是数组的数据(边界情况) +$arrayData = array( + 'key1' => 'value1', + 'key2' => array('nested' => 'value2') +); +r($convertTest->object2ArrayTest($arrayData)) && p('key1') && e('value1'); // 步骤5:纯数组数据处理 \ No newline at end of file