diff options
author | Thomas Steur <thomas.steur@gmail.com> | 2017-02-19 23:23:04 +0300 |
---|---|---|
committer | Thomas Steur <thomas.steur@gmail.com> | 2017-02-19 23:23:04 +0300 |
commit | 34dfe46626f97f777354927302734a68cd76d062 (patch) | |
tree | 13fb2fe69381f4a23c5a38f778643ab0fe8a6de4 /tests | |
parent | ab3726a0c14c4a24072b24c14c7faee95c909de0 (diff) |
add possibility to use right joins
Diffstat (limited to 'tests')
-rw-r--r-- | tests/PHPUnit/Unit/DataAccess/LogQueryBuilder/JoinGeneratorTest.php | 35 | ||||
-rw-r--r-- | tests/PHPUnit/Unit/DataAccess/LogQueryBuilder/JoinTablesTest.php | 11 |
2 files changed, 46 insertions, 0 deletions
diff --git a/tests/PHPUnit/Unit/DataAccess/LogQueryBuilder/JoinGeneratorTest.php b/tests/PHPUnit/Unit/DataAccess/LogQueryBuilder/JoinGeneratorTest.php index cb20726968..746f2e45ff 100644 --- a/tests/PHPUnit/Unit/DataAccess/LogQueryBuilder/JoinGeneratorTest.php +++ b/tests/PHPUnit/Unit/DataAccess/LogQueryBuilder/JoinGeneratorTest.php @@ -102,6 +102,41 @@ class JoinGeneratorTest extends \PHPUnit_Framework_TestCase $this->assertEquals($expected, $generator->getJoinString()); } + public function test_generate_getJoinString_manuallyJoinedAlreadyPlusCustomJoinButAlsoLeft() + { + $generator = $this->generate(array( + 'log_link_visit_action', + array('table' => 'log_visit', 'joinOn' => 'log_visit.idvisit = log_link_visit_action.idvisit'), + array('table' => 'log_action', 'join' => 'LeFt JOIN', 'joinOn' => 'log_link_visit_action.idaction_name = log_action.idaction'), + 'log_action' + )); + + $expected = 'log_link_visit_action AS log_link_visit_action '; + $expected .= 'LEFT JOIN log_visit AS log_visit ON log_visit.idvisit = log_link_visit_action.idvisit '; + $expected .= 'LEFT JOIN log_action AS log_action ON (log_link_visit_action.idaction_name = log_action.idaction AND log_link_visit_action.idaction_url = log_action.idaction)'; + $this->assertEquals($expected, $generator->getJoinString()); + } + + public function test_generate_getJoinString_manualJoin() + { + $generator = $this->generate(array( + 'log_link_visit_action', + array('table' => 'log_visit', + 'join' => 'RIGHT JOIN','joinOn' => 'log_visit.idvisit = log_link_visit_action.idvisit'), + array('table' => 'log_action', + 'tableAlias' => 'log_action_r', + 'join' => 'RIGHT JOIN', + 'joinOn' => 'log_link_visit_action.idaction_test = log_action_r.idaction'), + 'log_action' + )); + + $expected = 'log_link_visit_action AS log_link_visit_action '; + $expected .= 'RIGHT JOIN log_visit AS log_visit ON log_visit.idvisit = log_link_visit_action.idvisit '; + $expected .= 'RIGHT JOIN log_action AS log_action_r ON log_link_visit_action.idaction_test = log_action_r.idaction '; + $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_allTables() { $generator = $this->generate(array( diff --git a/tests/PHPUnit/Unit/DataAccess/LogQueryBuilder/JoinTablesTest.php b/tests/PHPUnit/Unit/DataAccess/LogQueryBuilder/JoinTablesTest.php index 8f5a52fd0b..98aeb339ee 100644 --- a/tests/PHPUnit/Unit/DataAccess/LogQueryBuilder/JoinTablesTest.php +++ b/tests/PHPUnit/Unit/DataAccess/LogQueryBuilder/JoinTablesTest.php @@ -88,6 +88,17 @@ class JoinTablesTest extends \PHPUnit_Framework_TestCase $this->assertFalse($result); } + public function test_hasJoinedTableManually_shouldReturnFalse_IfTableOrJoinHasCustomJoin() + { + $this->tables = $this->makeTables(array( + 'log_visit', + array('table' => 'log_conversion', 'join' => 'right JOIN', 'joinOn' => 'log_conversion.idvisit = log_visit.idvisit'), + 'log_action')); + + $result = $this->tables->hasJoinedTableManually('log_conversion', 'log_conversion.idvisit = log_visit.idvisit'); + $this->assertFalse($result); + } + public function test_hasAddedTableManually_shouldReturnTrue_IfTableWasAddedManually() { $result = $this->tables->hasAddedTableManually('log_conversion'); |