mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-05-11 21:12:15 +09:00
Add unit tests for SELECT COUNT(*) queries
This commit is contained in:
parent
cf1f4f3a3b
commit
02122cb383
3 changed files with 44 additions and 0 deletions
19
tests/_data/dbquery/selectCountTest1.xml
Normal file
19
tests/_data/dbquery/selectCountTest1.xml
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
<query id="selectCountTest1" action="select">
|
||||||
|
<tables>
|
||||||
|
<table name="documents" />
|
||||||
|
<table name="member" />
|
||||||
|
</tables>
|
||||||
|
<columns>
|
||||||
|
<column name="member.*" />
|
||||||
|
</columns>
|
||||||
|
<conditions>
|
||||||
|
<condition operation="equal" column="documents.member_srl" default="member.member_srl" />
|
||||||
|
<condition operation="in" column="documents.document_srl" var="document_srl_list" pipe="and" />
|
||||||
|
</conditions>
|
||||||
|
<groups>
|
||||||
|
<group column="member.member_srl" />
|
||||||
|
<having>
|
||||||
|
<condition operation="notequal" column="member.member_srl" var="exclude_member_srl" notnull="notnull" />
|
||||||
|
</having>
|
||||||
|
</groups>
|
||||||
|
</query>
|
||||||
11
tests/_data/dbquery/selectCountTest2.xml
Normal file
11
tests/_data/dbquery/selectCountTest2.xml
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
<query id="selectCountTest2" action="select">
|
||||||
|
<tables>
|
||||||
|
<table name="documents" />
|
||||||
|
</tables>
|
||||||
|
<columns distinct="true">
|
||||||
|
<column name="module_srl" />
|
||||||
|
</columns>
|
||||||
|
<conditions>
|
||||||
|
<condition operation="in" column="document_srl" var="document_srl_list" />
|
||||||
|
</conditions>
|
||||||
|
</query>
|
||||||
|
|
@ -259,6 +259,20 @@ class DBQueryParserTest extends \Codeception\TestCase\Test
|
||||||
$this->assertEquals(['Y'], $params);
|
$this->assertEquals(['Y'], $params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testCountQuery()
|
||||||
|
{
|
||||||
|
$query = Rhymix\Framework\Parsers\DBQueryParser::loadXML(\RX_BASEDIR . 'tests/_data/dbquery/selectCountTest1.xml');
|
||||||
|
$sql = $query->getQueryString('rx_', ['exclude_member_srl' => 4], [], true);
|
||||||
|
$this->assertEquals('SELECT COUNT(*) AS `count` FROM (SELECT 1 FROM `rx_documents` AS `documents`, `rx_member` AS `member` ' .
|
||||||
|
'WHERE `documents`.`member_srl` = `member`.`member_srl` GROUP BY `member`.`member_srl` HAVING `member`.`member_srl` != ?) ' .
|
||||||
|
'AS `subquery`', $sql);
|
||||||
|
|
||||||
|
$query = Rhymix\Framework\Parsers\DBQueryParser::loadXML(\RX_BASEDIR . 'tests/_data/dbquery/selectCountTest2.xml');
|
||||||
|
$sql = $query->getQueryString('rx_', ['document_srl_list' => [100, 110, 120]], [], true);
|
||||||
|
$this->assertEquals('SELECT COUNT(*) AS `count` FROM (SELECT DISTINCT `module_srl` FROM `rx_documents` AS `documents` ' .
|
||||||
|
'WHERE `document_srl` IN (?, ?, ?)) AS `subquery`', $sql);
|
||||||
|
}
|
||||||
|
|
||||||
public function testInsertQuery()
|
public function testInsertQuery()
|
||||||
{
|
{
|
||||||
$query = Rhymix\Framework\Parsers\DBQueryParser::loadXML(\RX_BASEDIR . 'tests/_data/dbquery/insertTest.xml');
|
$query = Rhymix\Framework\Parsers\DBQueryParser::loadXML(\RX_BASEDIR . 'tests/_data/dbquery/insertTest.xml');
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue