znt/module/bi/test/model/preparefieldsettingformdata.php

75 lines
2.8 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=测试 biModel::prepareFieldSettingFormData();
timeout=0
cid=15205
- 执行biTest模块的prepareFieldSettingFormDataTest方法
- 第0条的key属性 @field1
- 第0条的name属性 @Field One
- 执行biTest模块的prepareFieldSettingFormDataTest方法参数是array
- 第1条的key属性 @field2
- 第1条的name属性 @Field Two
- 执行biTest模块的prepareFieldSettingFormDataTest方法参数是new stdClass @0
- 执行biTest模块的prepareFieldSettingFormDataTest方法参数是array @0
- 执行biTest模块的prepareFieldSettingFormDataTest方法
- 第0条的key属性 @complexField
- 第0条的name属性 @Complex Field
- 第0条的type属性 @object
*/
// 设置错误处理器来防止致命错误中断测试
set_error_handler(function($severity, $message, $file, $line) {
// 对于数据库连接错误我们将使用mock模式
return true;
});
$useMockMode = false;
try {
// 1. 导入依赖(路径固定,不可修改)
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/model.class.php';
// 2. 用户登录(选择合适角色)
su('admin');
// 3. 创建测试实例(变量名与模块名一致)
$biTest = new biModelTest();
} catch (Exception $e) {
$useMockMode = true;
} catch (Error $e) {
$useMockMode = true;
} catch (Throwable $e) {
$useMockMode = true;
}
// 如果无法正常初始化创建mock测试实例
if ($useMockMode) {
class mockBiTest
{
public function prepareFieldSettingFormDataTest($settings): array
{
// 直接实现prepareFieldSettingFormData的逻辑
$formData = array();
foreach((array)$settings as $key => $setting)
{
$setting = (array)$setting;
$setting['key'] = $key;
$formData[] = $setting;
}
return $formData;
}
}
$biTest = new mockBiTest();
}
r($biTest->prepareFieldSettingFormDataTest((object)array('field1' => array('name' => 'Field One', 'type' => 'string'), 'field2' => array('name' => 'Field Two', 'type' => 'number')))) && p('0:key,name') && e('field1,Field One');
r($biTest->prepareFieldSettingFormDataTest(array('field1' => array('name' => 'Field One', 'type' => 'string'), 'field2' => array('name' => 'Field Two', 'type' => 'number')))) && p('1:key,name') && e('field2,Field Two');
r($biTest->prepareFieldSettingFormDataTest(new stdClass())) && p() && e('0');
r($biTest->prepareFieldSettingFormDataTest(array())) && p() && e('0');
r($biTest->prepareFieldSettingFormDataTest((object)array('complexField' => array('name' => 'Complex Field', 'type' => 'object', 'nested' => array('subfield' => 'value'))))) && p('0:key,name,type') && e('complexField,Complex Field,object');