mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-04 17:21:39 +09:00
Add more tests for table alias handling (#1956 보완)
This commit is contained in:
parent
b8641c3501
commit
8b611e9d08
3 changed files with 11 additions and 5 deletions
|
|
@ -1,6 +1,6 @@
|
|||
<query id="selectTest2" action="select">
|
||||
<tables>
|
||||
<table name="documents" />
|
||||
<table name="documents" alias="d" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="readed_count + trackback_count" alias="count" />
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
<query id="updateTest" action="update">
|
||||
<tables>
|
||||
<table name="documents" />
|
||||
<table name="comments" alias="c" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="member_srl" var="member_srl" filter="number" default="0" />
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ class DBQueryParserTest extends \Codeception\TestCase\Test
|
|||
$this->assertTrue($query->select_distinct);
|
||||
|
||||
$this->assertTrue($query->tables['documents'] instanceof Rhymix\Framework\Parsers\DBQuery\Table);
|
||||
$this->assertNull($query->tables['documents']->alias);
|
||||
$this->assertEquals('documents', $query->tables['documents']->name);
|
||||
|
||||
$this->assertEquals(1, count($query->columns));
|
||||
|
|
@ -84,8 +85,9 @@ class DBQueryParserTest extends \Codeception\TestCase\Test
|
|||
$sql = $query->getQueryString('rx_', $args);
|
||||
$params = $query->getQueryParams();
|
||||
|
||||
$this->assertEquals('documents', $query->tables['d']->name);
|
||||
$this->assertEquals('SELECT readed_count + trackback_count AS `count` ' .
|
||||
'FROM `rx_documents` AS `documents` WHERE `voted_count` + `blamed_count` >= ? AND LEFT(`regdate`, 8) = ?', $sql);
|
||||
'FROM `rx_documents` AS `d` WHERE `voted_count` + `blamed_count` >= ? AND LEFT(`regdate`, 8) = ?', $sql);
|
||||
$this->assertEquals([20, '20201021'], $params);
|
||||
}
|
||||
|
||||
|
|
@ -392,8 +394,11 @@ class DBQueryParserTest extends \Codeception\TestCase\Test
|
|||
$query = Rhymix\Framework\Parsers\DBQueryParser::loadXML(\RX_BASEDIR . 'tests/_data/dbquery/updateTest.xml');
|
||||
$this->assertTrue($query instanceof Rhymix\Framework\Parsers\DBQuery\Query);
|
||||
$this->assertEquals('UPDATE', $query->type);
|
||||
$this->assertEquals(1, count($query->tables));
|
||||
$this->assertEquals(2, count($query->tables));
|
||||
$this->assertEquals('documents', $query->tables['documents']->name);
|
||||
$this->assertNull($query->tables['documents']->alias);
|
||||
$this->assertEquals('comments', $query->tables['c']->name);
|
||||
$this->assertEquals('c', $query->tables['c']->alias);
|
||||
$this->assertEquals(4, count($query->columns));
|
||||
$this->assertTrue($query->columns[0] instanceof Rhymix\Framework\Parsers\DBQuery\ColumnWrite);
|
||||
$this->assertEquals('member_srl', $query->columns[0]->name);
|
||||
|
|
@ -416,14 +421,14 @@ class DBQueryParserTest extends \Codeception\TestCase\Test
|
|||
$sql = $query->getQueryString('rx_', $args);
|
||||
$params = $query->getQueryParams();
|
||||
|
||||
$this->assertEquals('UPDATE `rx_documents` SET `member_srl` = ?, `nick_name` = ?, `voted_count` = `voted_count` + ? WHERE `document_srl` = ?', $sql);
|
||||
$this->assertEquals('UPDATE `rx_documents`, `rx_comments` AS `c` SET `member_srl` = ?, `nick_name` = ?, `voted_count` = `voted_count` + ? WHERE `document_srl` = ?', $sql);
|
||||
$this->assertEquals(['456', '닉네임', '5', '123'], $params);
|
||||
|
||||
$args = array('document_srl' => 123, 'member_srl' => 456, 'voted_count' => 5);
|
||||
$sql = $query->getQueryString('rx_', $args);
|
||||
$params = $query->getQueryParams();
|
||||
|
||||
$this->assertEquals('UPDATE `rx_documents` SET `member_srl` = ?, `nick_name` = NULL, `voted_count` = `voted_count` + ? WHERE `document_srl` = ?', $sql);
|
||||
$this->assertEquals('UPDATE `rx_documents`, `rx_comments` AS `c` SET `member_srl` = ?, `nick_name` = NULL, `voted_count` = `voted_count` + ? WHERE `document_srl` = ?', $sql);
|
||||
$this->assertEquals(['456', '5', '123'], $params);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue