Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorThomas Steur <thomas.steur@gmail.com>2017-02-19 23:23:04 +0300
committerThomas Steur <thomas.steur@gmail.com>2017-02-19 23:23:04 +0300
commit34dfe46626f97f777354927302734a68cd76d062 (patch)
tree13fb2fe69381f4a23c5a38f778643ab0fe8a6de4 /tests
parentab3726a0c14c4a24072b24c14c7faee95c909de0 (diff)
add possibility to use right joins
Diffstat (limited to 'tests')
-rw-r--r--tests/PHPUnit/Unit/DataAccess/LogQueryBuilder/JoinGeneratorTest.php35
-rw-r--r--tests/PHPUnit/Unit/DataAccess/LogQueryBuilder/JoinTablesTest.php11
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');