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

74 lines
2.7 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
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/model.class.php';
/**
title=biModel->parseSqlVars();
timeout=0
cid=15193
- 测试正常过滤器替换变量 @SELECT * FROM zt_user WHERE account = 'admin' AND status = 'active'
- 测试空过滤器数组处理 @SELECT * FROM zt_task WHERE '' AND ''
- 测试条件变量处理 @SELECT * FROM zt_project WHERE id='1'
- 测试多选类型变量处理 @SELECT * FROM zt_story WHERE type IN (''story','requirement'')
- 测试复杂变量占位符清理 @SELECT * FROM zt_bug WHERE ''Condition AND status = '' AND ''Condition
*/
$bi = new biModelTest();
// 测试步骤1测试正常过滤器替换变量
$sql1 = "SELECT * FROM zt_user WHERE account = \$username AND status = \$status";
$filters1 = array(
array(
'field' => 'username',
'from' => 'query',
'type' => 'input',
'default' => 'admin'
),
array(
'field' => 'status',
'from' => 'query',
'type' => 'select',
'default' => 'active'
)
);
r($bi->parseSqlVarsTest($sql1, $filters1)) && p() && e("SELECT * FROM zt_user WHERE account = 'admin' AND status = 'active'"); // 测试正常过滤器替换变量
// 测试步骤2测试空过滤器数组处理
$sql2 = "SELECT * FROM zt_task WHERE \$Variable_1 AND \$Variable_2";
$filters2 = array();
r($bi->parseSqlVarsTest($sql2, $filters2)) && p() && e("SELECT * FROM zt_task WHERE '' AND ''"); // 测试空过滤器数组处理
// 测试步骤3测试条件变量处理
$sql3 = "SELECT * FROM zt_project WHERE \$projectCondition";
$filters3 = array(
array(
'field' => 'project',
'from' => 'query',
'type' => 'select',
'default' => '1',
'relatedField' => 'id'
)
);
r($bi->parseSqlVarsTest($sql3, $filters3)) && p() && e("SELECT * FROM zt_project WHERE id='1'"); // 测试条件变量处理
// 测试步骤4测试多选类型变量处理
$sql4 = "SELECT * FROM zt_story WHERE type IN ('\$storyType')";
$filters4 = array(
array(
'field' => 'storyType',
'from' => 'query',
'type' => 'multipleselect',
'default' => array('story', 'requirement')
)
);
r($bi->parseSqlVarsTest($sql4, $filters4)) && p() && e("SELECT * FROM zt_story WHERE type IN (''story','requirement'')"); // 测试多选类型变量处理
// 测试步骤5测试复杂变量占位符清理
$sql5 = "SELECT * FROM zt_bug WHERE \$Variable_1Condition AND status = \$status_2 AND \$Variable_3Condition";
$filters5 = array();
r($bi->parseSqlVarsTest($sql5, $filters5)) && p() && e("SELECT * FROM zt_bug WHERE ''Condition AND status = '' AND ''Condition"); // 测试复杂变量占位符清理