Files
EasySoft-ZenTaoPMS/module/chart/test/model/genpie.php
T

79 lines
3.2 KiB
PHP
Executable File

#!/usr/bin/env php
<?php
/**
title=测试 chartModel::genPie();
timeout=0
cid=0
- 执行$normalResult第legend条的type属性 @scroll
- 执行$normalResult第tooltip条的trigger属性 @item
- 执行$emptyResult['series'][0]['data'] @0
- 执行$largeDataResult['series'][0]['data'][50]['name'] @其他
- 执行$filteredResult['series'][0]['data'][0]['name'] @活动
*/
// 1. 导入依赖(路径固定,不可修改)
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/chart.unittest.class.php';
// 2. 创建测试实例(变量名与模块名一致)
$chartTest = new chartTest();
// 步骤1:正常饼图生成
$normalFields = array(
'status' => array('name' => '状态', 'object' => 'bug', 'field' => 'status', 'type' => 'option')
);
$normalSettings = array(
'group' => array(array('field' => 'status', 'name' => '状态', 'group' => '')),
'metric' => array(array('field' => 'count', 'name' => '数量', 'valOrAgg' => 'count'))
);
$normalSql = 'SELECT "active" as status, 15 as count UNION SELECT "resolved" as status, 8 as count UNION SELECT "closed" as status, 3 as count';
$normalResult = $chartTest->genPieTest($normalFields, $normalSettings, $normalSql);
r($normalResult) && p('legend:type') && e('scroll');
// 步骤2:测试tooltip
r($normalResult) && p('tooltip:trigger') && e('item');
// 步骤3:空数据处理
$emptyFields = array(
'status' => array('name' => '状态', 'object' => 'bug', 'field' => 'status', 'type' => 'option')
);
$emptySettings = array(
'group' => array(array('field' => 'status', 'name' => '状态', 'group' => '')),
'metric' => array(array('field' => 'count', 'name' => '数量', 'valOrAgg' => 'count'))
);
$emptySql = 'SELECT 1 WHERE 1=0';
$emptyResult = $chartTest->genPieTest($emptyFields, $emptySettings, $emptySql);
r($emptyResult['series'][0]['data']) && p() && e('0');
// 步骤4:大数据量归并处理 - 生成超过50条数据
$largeDataFields = array(
'id' => array('name' => 'ID', 'object' => 'test', 'field' => 'id', 'type' => 'number')
);
$largeDataSettings = array(
'group' => array(array('field' => 'id', 'name' => 'ID', 'group' => '')),
'metric' => array(array('field' => 'count', 'name' => '数量', 'valOrAgg' => 'count'))
);
$largeDataSql = '';
for($i = 1; $i <= 55; $i++) {
if($i > 1) $largeDataSql .= ' UNION ';
$largeDataSql .= 'SELECT ' . $i . ' as id, 1 as count';
}
$largeDataResult = $chartTest->genPieTest($largeDataFields, $largeDataSettings, $largeDataSql);
r($largeDataResult['series'][0]['data'][50]['name']) && p() && e('其他');
// 步骤5:带过滤器的饼图
$filteredFields = array(
'status' => array('name' => '状态', 'object' => 'bug', 'field' => 'status', 'type' => 'option')
);
$filteredSettings = array(
'group' => array(array('field' => 'status', 'name' => '状态', 'group' => '')),
'metric' => array(array('field' => 'count', 'name' => '数量', 'valOrAgg' => 'count'))
);
$filteredSql = 'SELECT "活动" as status, 10 as count UNION SELECT "已解决" as status, 5 as count';
$filteredFilters = array();
$filteredResult = $chartTest->genPieTest($filteredFields, $filteredSettings, $filteredSql, $filteredFilters);
r($filteredResult['series'][0]['data'][0]['name']) && p() && e('活动');