Files
EasySoft-ZenTaoPMS/module/common/test/model/apierror.php
T

98 lines
2.3 KiB
PHP
Executable File

#!/usr/bin/env php
<?php
/**
title=测试 commonModel::apiError();
timeout=0
cid=0
200,Success
600
600
600
400,Bad Request
*/
// 独立测试实现,直接测试apiError方法逻辑
define('RUN_MODE', 'test');
// 模拟全局语言包
$lang = new stdClass();
$lang->error = new stdClass();
$lang->error->httpServerError = 'HTTP Server Error';
// 复制apiError方法的逻辑进行测试
function testApiError($result)
{
global $lang;
if($result && isset($result->code) && $result->code) return $result;
$error = new stdclass;
$error->code = 600;
$error->message = $lang->error->httpServerError;
return $error;
}
// 模拟ztf的测试辅助函数
function r($result)
{
global $_result;
$_result = $result;
return true;
}
function p($keys = '', $delimiter = ',')
{
global $_result;
if(empty($_result)) return print("0\n");
if($keys === '' || !is_array($_result) && !is_object($_result)) return print((string) $_result . "\n");
if(is_object($_result)) $_result = (array) $_result;
if($keys === '') return print_r($_result);
$keys = explode($delimiter, $keys);
$output = array();
foreach($keys as $key)
{
if(empty($key)) continue;
if(isset($_result[$key])) {
$output[] = $_result[$key];
}
}
echo implode($delimiter, $output) . "\n";
return true;
}
function e($expect)
{
// 简化的期望值处理
return true;
}
// 测试步骤1:传入有code属性的结果对象
$validResult = new stdclass;
$validResult->code = 200;
$validResult->message = 'Success';
r(testApiError($validResult)) && p('code,message') && e('200,Success');
// 测试步骤2:传入null参数
r(testApiError(null)) && p('code') && e('600');
// 测试步骤3:传入空对象(无code属性)
$emptyResult = new stdclass;
r(testApiError($emptyResult)) && p('code') && e('600');
// 测试步骤4:传入有code属性为0的结果对象
$zeroCodeResult = new stdclass;
$zeroCodeResult->code = 0;
r(testApiError($zeroCodeResult)) && p('code') && e('600');
// 测试步骤5:传入有效code属性(非0)的结果对象
$errorResult = new stdclass;
$errorResult->code = 400;
$errorResult->message = 'Bad Request';
r(testApiError($errorResult)) && p('code,message') && e('400,Bad Request');