Files
EasySoft-ZenTaoPMS/module/bi/test/model/getfields.php
T
2025-09-15 15:06:09 +08:00

92 lines
2.2 KiB
PHP
Executable File
Raw 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
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/bi.unittest.class.php';
/**
title=测试 biModel::getFields();
timeout=0
cid=0
- 执行bi模块的getFieldsTest方法,参数是$statement1
- 属性id @id
- 属性name @name
- 执行bi模块的getFieldsTest方法,参数是$statement2 @~~
- 执行bi模块的getFieldsTest方法,参数是$statement3
- 属性id @u.id
- 属性account @u.account
- 执行bi模块的getFieldsTest方法,参数是$statement4
- 属性user_id @id
- 属性username @account
- 执行bi模块的getFieldsTest方法,参数是$statement5 属性* @*
*/
su('admin');
$bi = new biTest();
// 测试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($bi->getFieldsTest($statement1)) && p('id,name') && e('id,name');
// 测试2:空statement对象处理
$statement2 = new stdclass();
$statement2->expr = null;
r($bi->getFieldsTest($statement2)) && p() && e('~~');
// 测试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($bi->getFieldsTest($statement3)) && p('id,account') && e('u.id,u.account');
// 测试4:带别名字段解析
$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($bi->getFieldsTest($statement4)) && p('user_id,username') && e('id,account');
// 测试5SELECT *字段解析
$statement5 = new stdclass();
$statement5->expr = array();
$expr7 = new stdclass();
$expr7->expr = '*';
$expr7->alias = '';
$statement5->expr[] = $expr7;
r($bi->getFieldsTest($statement5)) && p('*') && e('*');