mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-04 17:21:39 +09:00
Add unit tests for if="var" support in XML query
This commit is contained in:
parent
658a28dfd8
commit
ae0e13eca9
3 changed files with 67 additions and 1 deletions
18
tests/_data/dbquery/ifVarTest.xml
Normal file
18
tests/_data/dbquery/ifVarTest.xml
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<query id="ifVarTest" action="select">
|
||||
<tables>
|
||||
<table name="documents" if="if_table" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="module_srl" />
|
||||
<column name="document_srl" if="if_column" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="module_srl" var="module_srl" if="if_condition" />
|
||||
</conditions>
|
||||
<navigation>
|
||||
<index var="sort_index" default="list_order" order="desc" if="if_sort_index" />
|
||||
<list_count var="list_count" default="20" if="if_list_count" />
|
||||
<page_count var="page_count" default="10" if="if_page_count" />
|
||||
<page var="page" default="3" if="if_page" />
|
||||
</navigation>
|
||||
</query>
|
||||
|
|
@ -554,4 +554,48 @@ class DBQueryParserTest extends \Codeception\Test\Unit
|
|||
$this->assertEquals('SELECT * FROM `rx_documents` AS `documents` WHERE `module_srl` IS NULL AND `member_srl` IS NOT NULL', $sql);
|
||||
$this->assertEquals([], $query->getQueryParams());
|
||||
}
|
||||
|
||||
public function testIfVar()
|
||||
{
|
||||
$query = Rhymix\Framework\Parsers\DBQueryParser::loadXML(\RX_BASEDIR . 'tests/_data/dbquery/ifVarTest.xml');
|
||||
|
||||
$sql = $query->getQueryString('rx_', array(
|
||||
'if_table' => true,
|
||||
'module_srl' => 1234,
|
||||
));
|
||||
$this->assertEquals('SELECT `module_srl` FROM `rx_documents` AS `documents`', $sql);
|
||||
|
||||
$sql = $query->getQueryString('rx_', array(
|
||||
'if_table' => true,
|
||||
'if_column' => true,
|
||||
'if_condition' => true,
|
||||
));
|
||||
$this->assertEquals('SELECT `module_srl`, `document_srl` FROM `rx_documents` AS `documents`', $sql);
|
||||
|
||||
$sql = $query->getQueryString('rx_', array(
|
||||
'if_table' => true,
|
||||
'if_column' => true,
|
||||
'if_condition' => true,
|
||||
'module_srl' => 1234,
|
||||
));
|
||||
$this->assertEquals('SELECT `module_srl`, `document_srl` FROM `rx_documents` AS `documents` WHERE `module_srl` = ?', $sql);
|
||||
$this->assertFalse($query->requires_pagination);
|
||||
|
||||
$sql = $query->getQueryString('rx_', array(
|
||||
'if_table' => true,
|
||||
'if_sort_index' => true,
|
||||
));
|
||||
$this->assertEquals('SELECT `module_srl` FROM `rx_documents` AS `documents` ORDER BY `list_order` DESC', $sql);
|
||||
$this->assertFalse($query->requires_pagination);
|
||||
|
||||
$sql = $query->getQueryString('rx_', array(
|
||||
'if_table' => true,
|
||||
'if_sort_index' => true,
|
||||
'if_list_count' => true,
|
||||
'if_page_count' => true,
|
||||
'if_page' => true,
|
||||
));
|
||||
$this->assertEquals('SELECT `module_srl` FROM `rx_documents` AS `documents` ORDER BY `list_order` DESC LIMIT 40, 20', $sql);
|
||||
$this->assertTrue($query->requires_pagination);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue