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

99 lines
2.6 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::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');
// 测试5SELECT *字段解析 - *字段原样处理
$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');