mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-04-22 11:52:14 +09:00
#1517 보완: 더 복잡한 조건으로 유닛 테스트 추가
This commit is contained in:
parent
a0b324993c
commit
9e7d654885
2 changed files with 22 additions and 20 deletions
|
|
@ -6,19 +6,6 @@
|
|||
<column name="*" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<group pipe="and">
|
||||
<condition operation="more" column="list_order" var="division" pipe="and" />
|
||||
<condition operation="below" column="list_order" var="last_division" pipe="and" />
|
||||
</group>
|
||||
<group pipe="and">
|
||||
<condition operation="search" column="title" var="s_title" />
|
||||
<condition operation="search" column="content" var="s_content" pipe="or" />
|
||||
</group>
|
||||
<condition operation="search" column="content" var="s_content" />
|
||||
</conditions>
|
||||
<navigation>
|
||||
<index var="sort_index" default="list_order" order="order_type" />
|
||||
<list_count var="list_count" default="20" />
|
||||
<page_count var="page_count" default="10" />
|
||||
<page var="page" default="1" />
|
||||
</navigation>
|
||||
</query>
|
||||
|
|
|
|||
|
|
@ -73,15 +73,30 @@ class DBQueryParserTest extends \Codeception\TestCase\Test
|
|||
public function testSelectWithSearch()
|
||||
{
|
||||
$query = Rhymix\Framework\Parsers\DBQueryParser::loadXML(\RX_BASEDIR . 'tests/_data/dbquery/selectTest3.xml');
|
||||
$args = array('division' => 1234, 'last_division' => 4567, 's_title' => '"I love you" -"I hate you"', 's_content' => '"I love you" -"I hate you"', 'page' => 3);
|
||||
|
||||
$args = array('s_content' => '"I love you" -"I hate you"');
|
||||
$sql = $query->getQueryString('rx_', $args);
|
||||
$params = $query->getQueryParams();
|
||||
$this->assertEquals('SELECT * FROM `rx_documents` AS `documents` WHERE (`content` LIKE ? AND `content` NOT LIKE ?)', $sql);
|
||||
$this->assertEquals(['%I love you%', '%I hate you%'], $params);
|
||||
|
||||
$this->assertEquals('SELECT * FROM `rx_documents` AS `documents` ' .
|
||||
'WHERE (`list_order` >= ? AND `list_order` < ?) AND ' .
|
||||
'((`title` LIKE ? AND `title` NOT LIKE ?) OR (`content` LIKE ? AND `content` NOT LIKE ?)) ' .
|
||||
'ORDER BY `list_order` ASC LIMIT 40, 20', $sql);
|
||||
$this->assertEquals(['1234', '4567', '%I love you%', '%I hate you%', '%I love you%', '%I hate you%'], $params);
|
||||
$args = array('s_content' => '(foo AND bar) -baz "Rhymix is the best"');
|
||||
$sql = $query->getQueryString('rx_', $args);
|
||||
$params = $query->getQueryParams();
|
||||
$this->assertEquals('SELECT * FROM `rx_documents` AS `documents` WHERE ((`content` LIKE ? AND `content` LIKE ?) AND `content` NOT LIKE ? AND `content` LIKE ?)', $sql);
|
||||
$this->assertEquals(['%foo%', '%bar%', '%baz%', '%Rhymix is the best%'], $params);
|
||||
|
||||
$args = array('s_content' => 'revenue +3.5% -"apos\'tro_phe"');
|
||||
$sql = $query->getQueryString('rx_', $args);
|
||||
$params = $query->getQueryParams();
|
||||
$this->assertEquals('SELECT * FROM `rx_documents` AS `documents` WHERE (`content` LIKE ? AND `content` LIKE ? AND `content` NOT LIKE ?)', $sql);
|
||||
$this->assertEquals(['%revenue%', '%+3.5\\%%', '%apos\'tro\\_phe%'], $params);
|
||||
|
||||
$args = array('s_content' => '한글 AND -검색 (-키워드 OR 라이믹스)');
|
||||
$sql = $query->getQueryString('rx_', $args);
|
||||
$params = $query->getQueryParams();
|
||||
$this->assertEquals('SELECT * FROM `rx_documents` AS `documents` WHERE (`content` LIKE ? AND `content` NOT LIKE ? AND (`content` NOT LIKE ? OR `content` LIKE ?))', $sql);
|
||||
$this->assertEquals(['%한글%', '%검색%', '%키워드%', '%라이믹스%'], $params);
|
||||
}
|
||||
|
||||
public function testJoin1()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue