mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-07 20:08:53 +00:00
[feature/sql-bool-builder] test_and_of_or_of_and
PHPBB3-13652
This commit is contained in:
parent
e6eab35a64
commit
5f63d685f6
1 changed files with 46 additions and 0 deletions
|
@ -21,6 +21,52 @@ class phpbb_boolean_processor_test extends phpbb_database_test_case
|
|||
return $this->createXMLDataSet(dirname(__FILE__).'/fixtures/boolean_processor.xml');
|
||||
}
|
||||
|
||||
public function test_and_of_or_of_and()
|
||||
{
|
||||
$db = $this->new_dbal();
|
||||
|
||||
$db->sql_return_on_error(true);
|
||||
|
||||
$sql_ary = array(
|
||||
'SELECT' => 'u.user_id',
|
||||
'FROM' => array(
|
||||
'phpbb_users' => 'u',
|
||||
'phpbb_user_group' => 'ug',
|
||||
),
|
||||
'LEFT_JOIN' => array(
|
||||
array(
|
||||
'FROM' => array(
|
||||
'phpbb_banlist' => 'b',
|
||||
),
|
||||
'ON' => 'u.user_id = b.ban_userid',
|
||||
),
|
||||
),
|
||||
'WHERE' => array('AND',
|
||||
array('OR',
|
||||
array('AND',
|
||||
array('ug.user_id', 'IN', array(1, 2, 3, 4)),
|
||||
array('ug.group_id', '=', 2),
|
||||
),
|
||||
array('AND',
|
||||
array('ug.group_id', '=', 1),
|
||||
array('b.ban_id', 'IS NOT', NULL),
|
||||
),
|
||||
),
|
||||
array('u.user_id', '=', 'ug.user_id'),
|
||||
),
|
||||
'ORDER_BY' => 'u.user_id',
|
||||
);
|
||||
$sql = $db->sql_build_query('SELECT', $sql_ary);
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
$db->sql_return_on_error(false);
|
||||
|
||||
$this->assertEquals(array(
|
||||
array('user_id' => '2'),
|
||||
array('user_id' => '4'),
|
||||
), $db->sql_fetchrowset($result));
|
||||
}
|
||||
|
||||
public function test_triple_and_with_in()
|
||||
{
|
||||
$db = $this->new_dbal();
|
||||
|
|
Loading…
Add table
Reference in a new issue