znt/module/metric/test/zen/preparedataset.php

105 lines
2.8 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=测试 metricZen::prepareDataset();
timeout=0
cid=17199
- 执行metricZenTest模块的prepareDatasetZenTest方法参数是$calcGroup1 属性type @statement
- 执行$result2) ? 'object' : $result2 @object
- 执行$result3) ? 'object' : $result3 @object
- 执行$result4) ? 'object' : $result4 @object
- 执行$result5) ? 'object' : $result5 @object
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/metriczen.unittest.class.php';
zenData('metric')->loadYaml('metric', false, 2)->gen(3);
zenData('holiday')->loadYaml('holiday', false, 1)->gen(5);
su('admin');
$metricZenTest = new metricZenTest();
class MockCalc
{
public $id = 1;
public $useSCM = false;
public $reuse = false;
public $fieldList = array('id', 'name');
private $dao;
private $holidays = array();
private $weekend = 2;
public function setDAO($dao)
{
$this->dao = $dao;
}
public function setHolidays($holidays)
{
$this->holidays = $holidays;
}
public function setWeekend($weekend)
{
$this->weekend = $weekend;
}
public function getStatement()
{
return (object)array('type' => 'statement', 'query' => 'SELECT * FROM test');
}
}
// 测试步骤1空数据源情况下的处理
$calc1 = new MockCalc();
$calcGroup1 = (object)array(
'dataset' => '',
'calcList' => array('test_code' => $calc1)
);
r($metricZenTest->prepareDatasetZenTest($calcGroup1)) && p('type') && e('statement');
// 测试步骤2带有数据源的calcGroup处理
$calc2 = new MockCalc();
$calcGroup2 = (object)array(
'dataset' => 'getProducts',
'calcList' => array('test_code2' => $calc2)
);
$result2 = $metricZenTest->prepareDatasetZenTest($calcGroup2);
r(is_object($result2) ? 'object' : $result2) && p() && e('object');
// 测试步骤3设置假日和周末配置
$calc3 = new MockCalc();
$calcGroup3 = (object)array(
'dataset' => 'getUsers',
'calcList' => array('test_code3' => $calc3)
);
$result3 = $metricZenTest->prepareDatasetZenTest($calcGroup3);
r(is_object($result3) ? 'object' : $result3) && p() && e('object');
// 测试步骤4多个calc对象的综合处理
$calc4a = new MockCalc();
$calc4b = new MockCalc();
$calcGroup4 = (object)array(
'dataset' => 'getTasks',
'calcList' => array(
'test_code4a' => $calc4a,
'test_code4b' => $calc4b
)
);
$result4 = $metricZenTest->prepareDatasetZenTest($calcGroup4);
r(is_object($result4) ? 'object' : $result4) && p() && e('object');
// 测试步骤5无效数据源的错误处理
$calc5 = new MockCalc();
$calcGroup5 = (object)array(
'dataset' => 'getDocs',
'calcList' => array('test_code5' => $calc5)
);
$result5 = $metricZenTest->prepareDatasetZenTest($calcGroup5);
r(is_object($result5) ? 'object' : $result5) && p() && e('object');