mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-17 18:29:55 +09:00
Added unit tests for correlated subqueries - select, from, where.
git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0-DB@8556 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
5d1eb1c21e
commit
1353ade0c2
41 changed files with 661 additions and 256 deletions
|
|
@ -1,28 +1,10 @@
|
|||
<?php
|
||||
require(_XE_PATH_ . 'test-phpUnit/config.inc.php');
|
||||
require(_XE_PATH_ . 'test-phpUnit/db/xml_query/cubrid/config.cubrid.inc.php');
|
||||
require(_XE_PATH_ . 'test-phpUnit/config/config.inc.php');
|
||||
|
||||
class CubridDeleteTest extends PHPUnit_Framework_TestCase {
|
||||
class CubridDeleteTest extends CubridTest {
|
||||
|
||||
function _test($xml_file, $argsString, $expected){
|
||||
$tester = new QueryTester();
|
||||
$outputString = $tester->getNewParserOutputString($xml_file, '"', $argsString);
|
||||
$output = eval($outputString);
|
||||
|
||||
if(!is_a($output, 'Query')){
|
||||
if(!$output->toBool()) $querySql = "Date incorecte! Query-ul nu a putut fi executat.";
|
||||
}else {
|
||||
$db = &DB::getInstance();
|
||||
var_dump($db);
|
||||
$querySql = $db->getDeleteSql($output);
|
||||
|
||||
// Remove whitespaces, tabs and all
|
||||
$querySql = Helper::cleanQuery($querySql);
|
||||
$expected = Helper::cleanQuery($expected);
|
||||
}
|
||||
|
||||
// Test
|
||||
$this->assertEquals($expected, $querySql);
|
||||
$this->_testQuery($xml_file, $argsString, $expected, 'getDeleteSql');
|
||||
}
|
||||
|
||||
function test_module_deleteActionForward(){
|
||||
|
|
|
|||
|
|
@ -1,28 +1,12 @@
|
|||
<?php
|
||||
require(_XE_PATH_ . 'test-phpUnit/config.inc.php');
|
||||
require(_XE_PATH_ . 'test-phpUnit/db/xml_query/cubrid/config.cubrid.inc.php');
|
||||
require(_XE_PATH_ . 'test-phpUnit/config/config.inc.php');
|
||||
|
||||
class CubridInsertTest extends PHPUnit_Framework_TestCase {
|
||||
class CubridInsertTest extends CubridTest {
|
||||
|
||||
function _test($xml_file, $argsString, $expected){
|
||||
$tester = new QueryTester();
|
||||
$outputString = $tester->getNewParserOutputString($xml_file, '"', $argsString);
|
||||
$output = eval($outputString);
|
||||
|
||||
if(!is_a($output, 'Query')){
|
||||
if(!$output->toBool()) $querySql = "Date incorecte! Query-ul nu a putut fi executat.";
|
||||
}else {
|
||||
$db = &DB::getInstance();
|
||||
$querySql = $db->getInsertSql($output);
|
||||
|
||||
// Remove whitespaces, tabs and all
|
||||
$querySql = Helper::cleanQuery($querySql);
|
||||
$expected = Helper::cleanQuery($expected);
|
||||
}
|
||||
|
||||
// Test
|
||||
$this->assertEquals($expected, $querySql);
|
||||
$this->_testQuery($xml_file, $argsString, $expected, 'getInsertSql');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Note: this test can fail when comaparing regdate from the $args with
|
||||
|
|
|
|||
|
|
@ -1,30 +1,10 @@
|
|||
<?php
|
||||
require(_XE_PATH_ . 'test-phpUnit/config.inc.php');
|
||||
require(_XE_PATH_ . 'test-phpUnit/db/xml_query/cubrid/config.cubrid.inc.php');
|
||||
require(_XE_PATH_ . 'test-phpUnit/config/config.inc.php');
|
||||
|
||||
class CubridSelectTest extends PHPUnit_Framework_TestCase {
|
||||
class CubridSelectTest extends CubridTest {
|
||||
|
||||
function _test($xml_file, $argsString, $expected){
|
||||
$tester = new QueryTester();
|
||||
$outputString = $tester->getNewParserOutputString($xml_file, '"', $argsString);
|
||||
|
||||
//echo $outputString;
|
||||
$output = eval($outputString);
|
||||
|
||||
if(!is_a($output, 'Query')){
|
||||
if(!$output->toBool()) $querySql = "Date incorecte! Query-ul nu a putut fi executat.";
|
||||
}else {
|
||||
//$db = new DBCubrid();
|
||||
$db = &DB::getInstance();
|
||||
$querySql = $db->getSelectSql($output);
|
||||
|
||||
// Remove whitespaces, tabs and all
|
||||
$querySql = Helper::cleanQuery($querySql);
|
||||
$expected = Helper::cleanQuery($expected);
|
||||
}
|
||||
|
||||
// Test
|
||||
$this->assertEquals($expected, $querySql);
|
||||
function _test($xml_file, $argsString, $expected){
|
||||
$this->_testQuery($xml_file, $argsString, $expected, 'getSelectSql');
|
||||
}
|
||||
|
||||
function testSelectStar(){
|
||||
|
|
|
|||
77
test-phpUnit/db/xml_query/cubrid/CubridSubqueryTest.php
Normal file
77
test-phpUnit/db/xml_query/cubrid/CubridSubqueryTest.php
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* To change this template, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
|
||||
class CubridSubqueryTest extends CubridTest {
|
||||
var $xmlPath = 'data/';
|
||||
|
||||
function CubridSubqueryTest(){
|
||||
$this->xmlPath = str_replace('CubridSubqueryTest.php', '', str_replace('\\', '/', __FILE__)) . $this->xmlPath;
|
||||
}
|
||||
|
||||
function _test($xml_file, $argsString, $expected){
|
||||
$this->_testQuery($xml_file, $argsString, $expected, 'getSelectSql');
|
||||
}
|
||||
|
||||
function testSelectUncorrelated1(){
|
||||
$xml_file = $this->xmlPath . "select_uncorrelated1.xml";
|
||||
echo $xml_file;
|
||||
$argsString = '$args->user_id = 4;
|
||||
';
|
||||
$expected = 'select "column_a" as "value_a"
|
||||
, (select max("column_b") as "count"
|
||||
from "xe_table_b" as "table_b"
|
||||
) as "value_b"
|
||||
from "xe_table_a" as "table_a"
|
||||
where "column_a" = 4';
|
||||
$this->_test($xml_file, $argsString, $expected);
|
||||
}
|
||||
|
||||
function testSelectUncorrelated2(){
|
||||
$xml_file = $this->xmlPath . "select_uncorrelated2.xml";
|
||||
echo $xml_file;
|
||||
$argsString = '$args->user_id = 4;
|
||||
$args->user_name = 7;
|
||||
';
|
||||
$expected = 'SELECT "column_a" as "value_a"
|
||||
, "column_b" as "value_b"
|
||||
, "column_c" as "value_c"
|
||||
, (SELECT max("column_b") as "count"
|
||||
FROM "xe_table_b" as "table_b"
|
||||
WHERE "column_ab" = 7) as "value_b"
|
||||
FROM "xe_table_a" as "table_a"
|
||||
WHERE "column_a" = 4';
|
||||
$this->_test($xml_file, $argsString, $expected);
|
||||
}
|
||||
|
||||
function testFromUncorrelated(){
|
||||
$xml_file = $this->xmlPath . "from_uncorrelated1.xml";
|
||||
echo $xml_file;
|
||||
$argsString = '$args->user_id = 4;
|
||||
$args->user_name = 7;
|
||||
';
|
||||
$expected = 'select max("documentcountbymember"."count") as "maxcount"
|
||||
from (
|
||||
select "member_srl" as "member_srl"
|
||||
, count(*) as "count"
|
||||
from "xe_documents" as "documents"
|
||||
group by "member_srl"
|
||||
) as "documentcountbymember"';
|
||||
$this->_test($xml_file, $argsString, $expected);
|
||||
}
|
||||
|
||||
function testWhereUncorrelated(){
|
||||
$xml_file = $this->xmlPath . "where_uncorrelated1.xml";
|
||||
echo $xml_file;
|
||||
$argsString = '';
|
||||
$expected = 'select * from
|
||||
"xe_member" as "member"
|
||||
where "regdate" = (select max("regdate") as "maxregdate"
|
||||
from "xe_documents" as "documents")';
|
||||
$this->_test($xml_file, $argsString, $expected);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -1,26 +1,10 @@
|
|||
<?php
|
||||
require(_XE_PATH_ . 'test-phpUnit/config.inc.php');
|
||||
require(_XE_PATH_ . 'test-phpUnit/db/xml_query/cubrid/config.cubrid.inc.php');
|
||||
require(_XE_PATH_ . 'test-phpUnit/config/config.inc.php');
|
||||
|
||||
class CubridUpdateTest extends PHPUnit_Framework_TestCase {
|
||||
class CubridUpdateTest extends CubridTest {
|
||||
|
||||
function _test($xml_file, $argsString, $expected){
|
||||
$tester = new QueryTester();
|
||||
$outputString = $tester->getNewParserOutputString($xml_file, '"', $argsString);
|
||||
$output = eval($outputString);
|
||||
if(!is_a($output, 'Query')){
|
||||
if(!$output->toBool()) $querySql = "Date incorecte! Query-ul nu a putut fi executat.";
|
||||
}else {
|
||||
$db = &DB::getInstance();
|
||||
$querySql = $db->getUpdateSql($output);
|
||||
|
||||
// Remove whitespaces, tabs and all
|
||||
$querySql = Helper::cleanQuery($querySql);
|
||||
$expected = Helper::cleanQuery($expected);
|
||||
}
|
||||
|
||||
// Test
|
||||
$this->assertEquals($expected, $querySql);
|
||||
function _test($xml_file, $argsString, $expected){
|
||||
$this->_testQuery($xml_file, $argsString, $expected, 'getUpdateSql');
|
||||
}
|
||||
|
||||
function test_module_updateModule(){
|
||||
|
|
|
|||
|
|
@ -1,8 +0,0 @@
|
|||
<?php
|
||||
$oContext = &Context::getInstance();
|
||||
|
||||
$db_info->db_type = 'cubrid';
|
||||
$db_info->db_table_prefix = 'xe';
|
||||
|
||||
$oContext->setDbInfo($db_info);
|
||||
?>
|
||||
19
test-phpUnit/db/xml_query/cubrid/data/from_uncorrelated1.xml
Normal file
19
test-phpUnit/db/xml_query/cubrid/data/from_uncorrelated1.xml
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
<query id="getMemberInfo" action="select">
|
||||
<tables>
|
||||
<query alias="documentCountByMember">
|
||||
<tables>
|
||||
<table name="documents" alias="documents" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="member_srl" alias="member_srl" />
|
||||
<column name="count(*)" alias="count" />
|
||||
</columns>
|
||||
<groups>
|
||||
<group column="member_srl" />
|
||||
</groups>
|
||||
</query>
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="MAX(documentCountByMember.count)" alias="maxCount" />
|
||||
</columns>
|
||||
</query>
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
<query id="select_uncorrelated" action="select">
|
||||
<tables>
|
||||
<table name="table_a" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="column_a" alias="value_a" />
|
||||
<query alias="value_b">
|
||||
<tables>
|
||||
<table name="table_b" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="max(column_b)" alias="count" />
|
||||
</columns>
|
||||
</query>
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="column_a" var="user_id" notnull="notnull" />
|
||||
</conditions>
|
||||
</query>
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
<query id="select_uncorrelated" action="select">
|
||||
<tables>
|
||||
<table name="table_a" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="column_a" alias="value_a" />
|
||||
<column name="column_b" alias="value_b" />
|
||||
<query alias="value_b">
|
||||
<tables>
|
||||
<table name="table_b" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="max(column_b)" alias="count" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="column_ab" var="user_name" notnull="notnull" />
|
||||
</conditions>
|
||||
</query>
|
||||
<column name="column_c" alias="value_c" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="column_a" var="user_id" notnull="notnull" />
|
||||
</conditions>
|
||||
</query>
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
<query id="getMemberInfo" action="select">
|
||||
<tables>
|
||||
<table name="member" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="*" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<query operation="equal" column="regdate" alias="documentMaxRegdate">
|
||||
<tables>
|
||||
<table name="documents" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="max(regdate)" alias="maxregdate" />
|
||||
</columns>
|
||||
</query>
|
||||
</conditions>
|
||||
</query>
|
||||
Loading…
Add table
Add a link
Reference in a new issue