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

69 lines
2 KiB
PHP
Raw Permalink Normal View History

#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/model.class.php';
/**
title=测试 biModel::getTableByAlias();
timeout=0
cid=15184
- 执行bi模块的getTableByAliasTest方法参数是$statement1, 'u' @zt_user
- 执行bi模块的getTableByAliasTest方法参数是$statement2, 't' @zt_task
- 执行bi模块的getTableByAliasTest方法参数是$statement1, 'nonexistent' @0
- 执行bi模块的getTableByAliasTest方法参数是$statement3, 'p' @zt_project
- 执行bi模块的getTableByAliasTest方法参数是$emptyStatement, 'u' @0
*/
su('admin');
$bi = new biModelTest();
// 测试1from子句中的别名查找
$statement1 = new stdclass();
$fromInfo = new stdclass();
$fromInfo->alias = 'u';
$fromInfo->table = 'zt_user';
$statement1->from = array($fromInfo);
$statement1->join = null;
r($bi->getTableByAliasTest($statement1, 'u')) && p() && e('zt_user');
// 测试2join子句中的别名查找
$statement2 = new stdclass();
$statement2->from = null;
$joinInfo = new stdclass();
$joinExpr = new stdclass();
$joinExpr->alias = 't';
$joinExpr->table = 'zt_task';
$joinInfo->expr = $joinExpr;
$statement2->join = array($joinInfo);
r($bi->getTableByAliasTest($statement2, 't')) && p() && e('zt_task');
// 测试3查找不存在的别名
r($bi->getTableByAliasTest($statement1, 'nonexistent')) && p() && e('0');
// 测试4复合查询中的别名查找from中
$statement3 = new stdclass();
$fromInfo3 = new stdclass();
$fromInfo3->alias = 'p';
$fromInfo3->table = 'zt_project';
$statement3->from = array($fromInfo3);
$joinInfo3 = new stdclass();
$joinExpr3 = new stdclass();
$joinExpr3->alias = 'u';
$joinExpr3->table = 'zt_user';
$joinInfo3->expr = $joinExpr3;
$statement3->join = array($joinInfo3);
r($bi->getTableByAliasTest($statement3, 'p')) && p() && e('zt_project');
// 测试5空statement的情况
$emptyStatement = new stdclass();
$emptyStatement->from = null;
$emptyStatement->join = null;
r($bi->getTableByAliasTest($emptyStatement, 'u')) && p() && e('0');