From 8b611e9d08de8bb599643f83fd41e1868c30b094 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Sun, 3 Jul 2022 17:49:19 +0900 Subject: [PATCH] =?UTF-8?q?Add=20more=20tests=20for=20table=20alias=20hand?= =?UTF-8?q?ling=20(#1956=20=EB=B3=B4=EC=99=84)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/_data/dbquery/selectTest2.xml | 2 +- tests/_data/dbquery/updateTest.xml | 1 + tests/unit/framework/parsers/DBQueryParserTest.php | 13 +++++++++---- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/tests/_data/dbquery/selectTest2.xml b/tests/_data/dbquery/selectTest2.xml index 277a2d190..aacb3cd31 100644 --- a/tests/_data/dbquery/selectTest2.xml +++ b/tests/_data/dbquery/selectTest2.xml @@ -1,6 +1,6 @@ - +
diff --git a/tests/_data/dbquery/updateTest.xml b/tests/_data/dbquery/updateTest.xml index d2b6ed99e..fab489fa4 100644 --- a/tests/_data/dbquery/updateTest.xml +++ b/tests/_data/dbquery/updateTest.xml @@ -1,6 +1,7 @@
+
diff --git a/tests/unit/framework/parsers/DBQueryParserTest.php b/tests/unit/framework/parsers/DBQueryParserTest.php index bd67ddca7..36773c691 100644 --- a/tests/unit/framework/parsers/DBQueryParserTest.php +++ b/tests/unit/framework/parsers/DBQueryParserTest.php @@ -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); }