znt/module/metric/test/model/createsqlfunction.php

52 lines
2 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=测试 metricModel::createSqlFunction();
timeout=0
cid=17072
- 执行metricTest模块的createSqlFunctionTest方法参数是$validSql, $validMeasurement 属性result @success
- 执行metricTest模块的createSqlFunctionTest方法参数是$validSql, $nullMeasurement 属性result @fail
- 执行metricTest模块的createSqlFunctionTest方法参数是$invalidSql, $validMeasurement 属性result @fail
- 执行metricTest模块的createSqlFunctionTest方法参数是$emptySql, $validMeasurement 属性result @fail
- 执行metricTest模块的createSqlFunctionTest方法参数是$errorSql, $validMeasurement 属性result @fail
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/model.class.php';
su('admin');
$metricTest = new metricModelTest();
// 创建有效的measurement对象
$validMeasurement = new stdClass();
$validMeasurement->code = 'test_metric';
// 创建有效的SQL语句使用简单的函数定义
$validSql = "CREATE FUNCTION qc_test_metric() RETURNS INT DETERMINISTIC RETURN 1;";
// 创建null measurement对象
$nullMeasurement = null;
// 创建无效的measurement对象code为空
$emptyCodeMeasurement = new stdClass();
$emptyCodeMeasurement->code = '';
// 创建无效的SQL语句不是CREATE FUNCTION语句
$invalidSql = "SELECT * FROM table;";
// 创建空SQL
$emptySql = "";
// 创建带语法错误的SQL用于测试异常处理
$errorSql = "CREATE FUNCTION qc_test_error() RETURNS INT DETERMINISTIC INVALID_SYNTAX;";
r($metricTest->createSqlFunctionTest($validSql, $validMeasurement)) && p('result') && e('success');
r($metricTest->createSqlFunctionTest($validSql, $nullMeasurement)) && p('result') && e('fail');
r($metricTest->createSqlFunctionTest($invalidSql, $validMeasurement)) && p('result') && e('fail');
r($metricTest->createSqlFunctionTest($emptySql, $validMeasurement)) && p('result') && e('fail');
r($metricTest->createSqlFunctionTest($errorSql, $validMeasurement)) && p('result') && e('fail');