99 lines
2.6 KiB
PHP
99 lines
2.6 KiB
PHP
|
|
#!/usr/bin/env php
|
|||
|
|
<?php
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
|
|||
|
|
title=测试 biModel::getFields();
|
|||
|
|
timeout=0
|
|||
|
|
cid=15171
|
|||
|
|
|
|||
|
|
- 执行biTest模块的getFieldsTest方法,参数是$statement1
|
|||
|
|
- 属性id @id
|
|||
|
|
- 属性name @name
|
|||
|
|
- 执行biTest模块的getFieldsTest方法,参数是$statement2 @0
|
|||
|
|
- 执行biTest模块的getFieldsTest方法,参数是$statement3
|
|||
|
|
- 属性id @u.id
|
|||
|
|
- 属性account @u.account
|
|||
|
|
- 执行biTest模块的getFieldsTest方法,参数是$statement4
|
|||
|
|
- 属性user_id @id
|
|||
|
|
- 属性username @account
|
|||
|
|
- 执行biTest模块的getFieldsTest方法,参数是$statement5 属性* @*
|
|||
|
|
- 执行biTest模块的getFieldsTest方法,参数是$statement6 @0
|
|||
|
|
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
|||
|
|
include dirname(__FILE__, 2) . '/lib/model.class.php';
|
|||
|
|
|
|||
|
|
su('admin');
|
|||
|
|
|
|||
|
|
$biTest = new biModelTest();
|
|||
|
|
|
|||
|
|
// 测试1:正常字段解析 - 模拟一个简单的statement对象
|
|||
|
|
$statement1 = new stdclass();
|
|||
|
|
$statement1->expr = array();
|
|||
|
|
|
|||
|
|
$expr1 = new stdclass();
|
|||
|
|
$expr1->expr = 'id';
|
|||
|
|
$expr1->alias = '';
|
|||
|
|
$statement1->expr[] = $expr1;
|
|||
|
|
|
|||
|
|
$expr2 = new stdclass();
|
|||
|
|
$expr2->expr = 'name';
|
|||
|
|
$expr2->alias = '';
|
|||
|
|
$statement1->expr[] = $expr2;
|
|||
|
|
|
|||
|
|
r($biTest->getFieldsTest($statement1)) && p('id,name') && e('id,name');
|
|||
|
|
|
|||
|
|
// 测试2:空statement对象处理 - expr为null时返回空数组
|
|||
|
|
$statement2 = new stdclass();
|
|||
|
|
$statement2->expr = null;
|
|||
|
|
r($biTest->getFieldsTest($statement2)) && p() && e('0');
|
|||
|
|
|
|||
|
|
// 测试3:带表前缀字段解析 - 有点前缀的字段,别名为点后面的部分
|
|||
|
|
$statement3 = new stdclass();
|
|||
|
|
$statement3->expr = array();
|
|||
|
|
|
|||
|
|
$expr3 = new stdclass();
|
|||
|
|
$expr3->expr = 'u.id';
|
|||
|
|
$expr3->alias = '';
|
|||
|
|
$statement3->expr[] = $expr3;
|
|||
|
|
|
|||
|
|
$expr4 = new stdclass();
|
|||
|
|
$expr4->expr = 'u.account';
|
|||
|
|
$expr4->alias = '';
|
|||
|
|
$statement3->expr[] = $expr4;
|
|||
|
|
|
|||
|
|
r($biTest->getFieldsTest($statement3)) && p('id,account') && e('u.id,u.account');
|
|||
|
|
|
|||
|
|
// 测试4:带别名字段解析 - 使用alias作为key,原字段名作为value
|
|||
|
|
$statement4 = new stdclass();
|
|||
|
|
$statement4->expr = array();
|
|||
|
|
|
|||
|
|
$expr5 = new stdclass();
|
|||
|
|
$expr5->expr = 'id';
|
|||
|
|
$expr5->alias = 'user_id';
|
|||
|
|
$statement4->expr[] = $expr5;
|
|||
|
|
|
|||
|
|
$expr6 = new stdclass();
|
|||
|
|
$expr6->expr = 'account';
|
|||
|
|
$expr6->alias = 'username';
|
|||
|
|
$statement4->expr[] = $expr6;
|
|||
|
|
|
|||
|
|
r($biTest->getFieldsTest($statement4)) && p('user_id,username') && e('id,account');
|
|||
|
|
|
|||
|
|
// 测试5:SELECT *字段解析 - *字段原样处理
|
|||
|
|
$statement5 = new stdclass();
|
|||
|
|
$statement5->expr = array();
|
|||
|
|
|
|||
|
|
$expr7 = new stdclass();
|
|||
|
|
$expr7->expr = '*';
|
|||
|
|
$expr7->alias = '';
|
|||
|
|
$statement5->expr[] = $expr7;
|
|||
|
|
|
|||
|
|
r($biTest->getFieldsTest($statement5)) && p('*') && e('*');
|
|||
|
|
|
|||
|
|
// 测试6:空expr数组处理 - expr为空数组时返回空数组
|
|||
|
|
$statement6 = new stdclass();
|
|||
|
|
$statement6->expr = array();
|
|||
|
|
r($biTest->getFieldsTest($statement6)) && p() && e('0');
|