dblayeroo : review the join process and add the unit tests for it

git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@3495 bf3deb0d-5f1a-0410-827f-c0cc1f45334c
This commit is contained in:
2017-04-03 15:06:03 +00:00
parent a096577d17
commit 15d70bd3a9
2 changed files with 217 additions and 11 deletions

View File

@@ -360,4 +360,150 @@ class test_dblayeroo_{ENGINE} extends PHPUnit_Framework_TestCase
),
), $res);
}
// JOINS
public function test_insertJoin1 ()
{
$db1 = $this->db1 ();
$db1->insert()
->setValues(array ("group"=>"group2",
"object"=>"object",
"where"=>"where"))
->execute ();
$db2 = $this->db2 ();
$db2->setForeignObj ($db1);
$res = $db2->insert()
->setValues(array ("gecos"=>"name2",
"password"=>"pwd2",
"group"=>"group1"))
->execute ();
$res = $db2->insert()
->setValues(array ("gecos"=>"name3",
"password"=>"pwd3",
"group"=>"group1"))
->execute ();
$res = $db2->insert()
->setValues(array ("gecos"=>"name4",
"password"=>"pwd4",
"group"=>"group1"))
->execute ();
$db1->disconnect ();
$db2->disconnect ();
}
public function test_innerJoin1 ()
{
$db1 = $this->db1 ();
$db2 = $this->db2 ();
$res = $db2->select ()
->joinInner ($db1, array ("group"=>"group"))
->execute ();
$db1->disconnect ();
$db2->disconnect ();
$this->assertSame (array (
array (
'usersoo.uid' => 1,
'usersoo.gecos' => 'name',
'usersoo.password' => 'toto',
'usersoo.group' => 'group1',
'groupedoo.group' => 'group1',
'groupedoo.object' => 'object',
'groupedoo.where' => 'where',
'groupedoo.with space' => NULL,
),
array (
'usersoo.uid' => 4,
'usersoo.gecos' => 'name2',
'usersoo.password' => 'pwd2',
'usersoo.group' => 'group1',
'groupedoo.group' => 'group1',
'groupedoo.object' => 'object',
'groupedoo.where' => 'where',
'groupedoo.with space' => NULL,
),
array (
'usersoo.uid' => 5,
'usersoo.gecos' => 'name3',
'usersoo.password' => 'pwd3',
'usersoo.group' => 'group1',
'groupedoo.group' => 'group1',
'groupedoo.object' => 'object',
'groupedoo.where' => 'where',
'groupedoo.with space' => NULL,
),
array (
'usersoo.uid' => 6,
'usersoo.gecos' => 'name4',
'usersoo.password' => 'pwd4',
'usersoo.group' => 'group1',
'groupedoo.group' => 'group1',
'groupedoo.object' => 'object',
'groupedoo.where' => 'where',
'groupedoo.with space' => NULL,
),
), $res);
}
public function test_leftJoin2 ()
{
$db1 = $this->db1 ();
$db2 = $this->db2 ();
$res = $db1->select ()
->joinLeft ($db2, array ("group"=>"group"))
->execute ();
$db1->disconnect ();
$db2->disconnect ();
$this->assertSame (array (
array (
'groupedoo.group' => 'group1',
'groupedoo.object' => 'object',
'groupedoo.where' => 'where',
'groupedoo.with space' => NULL,
'usersoo.uid' => 1,
'usersoo.gecos' => 'name',
'usersoo.password' => 'toto',
'usersoo.group' => 'group1',
),
array (
'groupedoo.group' => 'group1',
'groupedoo.object' => 'object',
'groupedoo.where' => 'where',
'groupedoo.with space' => NULL,
'usersoo.uid' => 4,
'usersoo.gecos' => 'name2',
'usersoo.password' => 'pwd2',
'usersoo.group' => 'group1',
),
array (
'groupedoo.group' => 'group1',
'groupedoo.object' => 'object',
'groupedoo.where' => 'where',
'groupedoo.with space' => NULL,
'usersoo.uid' => 5,
'usersoo.gecos' => 'name3',
'usersoo.password' => 'pwd3',
'usersoo.group' => 'group1',
),
array (
'groupedoo.group' => 'group1',
'groupedoo.object' => 'object',
'groupedoo.where' => 'where',
'groupedoo.with space' => NULL,
'usersoo.uid' => 6,
'usersoo.gecos' => 'name4',
'usersoo.password' => 'pwd4',
'usersoo.group' => 'group1',
),
array (
'groupedoo.group' => 'group2',
'groupedoo.object' => 'object',
'groupedoo.where' => 'where',
'groupedoo.with space' => NULL,
'usersoo.uid' => 0,
'usersoo.gecos' => NULL,
'usersoo.password' => NULL,
'usersoo.group' => NULL,
),
), $res);
}
}