diff options
author | Thomas Steur <tsteur@users.noreply.github.com> | 2018-07-23 04:41:13 +0300 |
---|---|---|
committer | diosmosis <diosmosis@users.noreply.github.com> | 2018-07-23 04:41:13 +0300 |
commit | 5664e5631ea0e597f9ed26bbbe9ef315a1844c42 (patch) | |
tree | 23808d69bae438e5d247e32b6e93fc23b553a97f /tests | |
parent | 6e9f6ea2cf60f8356955a6d9bef89cc957279a6b (diff) |
Fix array table may not be joined correctly due to table sort issue (#13186)
Diffstat (limited to 'tests')
-rw-r--r-- | tests/PHPUnit/Unit/DataAccess/LogQueryBuilder/JoinGeneratorTest.php | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/PHPUnit/Unit/DataAccess/LogQueryBuilder/JoinGeneratorTest.php b/tests/PHPUnit/Unit/DataAccess/LogQueryBuilder/JoinGeneratorTest.php index 0903098c05..4e211147a3 100644 --- a/tests/PHPUnit/Unit/DataAccess/LogQueryBuilder/JoinGeneratorTest.php +++ b/tests/PHPUnit/Unit/DataAccess/LogQueryBuilder/JoinGeneratorTest.php @@ -168,6 +168,34 @@ class JoinGeneratorTest extends \PHPUnit_Framework_TestCase $this->assertEquals($expected, $generator->getJoinString()); } + public function test_generate_getJoinString_manuallyJoinedAlreadyPlusCustomJoinButAlsoLeftNeedsKeepOrder() + { + $generator = $this->generate(array( + 'log_visit', + array('table' => 'log_link_visit_action', 'join' => 'RIGHT JOIN'), + 'log_action' + )); + + $expected = 'log_visit AS log_visit '; + $expected .= 'RIGHT JOIN log_link_visit_action AS log_link_visit_action ON log_link_visit_action.idvisit = log_visit.idvisit '; + $expected .= 'LEFT JOIN log_action AS log_action ON log_link_visit_action.idaction_url = log_action.idaction'; + $this->assertEquals($expected, $generator->getJoinString()); + } + + public function test_generate_getJoinString_manuallyJoinedAlreadyPlusCustomJoinAtEndButAlsoLeftNeedsKeepOrder() + { + $generator = $this->generate(array( + 'log_visit', + 'log_action', + array('table' => 'log_link_visit_action', 'join' => 'RIGHT JOIN'), + )); + + $expected = 'log_visit AS log_visit '; + $expected .= 'RIGHT JOIN log_link_visit_action AS log_link_visit_action ON log_link_visit_action.idvisit = log_visit.idvisit '; + $expected .= 'LEFT JOIN log_action AS log_action ON log_link_visit_action.idaction_url = log_action.idaction'; + $this->assertEquals($expected, $generator->getJoinString()); + } + public function test_generate_getJoinString_manualJoin() { $generator = $this->generate(array( |