3 namespace Doctrine\Tests\DBAL;
5 require_once __DIR__ . '/../TestInit.php';
7 class UtilTest extends \Doctrine\Tests\DbalTestCase
9 static public function dataConvertPositionalToNamedParameters()
13 'SELECT name FROM users WHERE id = ?',
14 'SELECT name FROM users WHERE id = :param1',
18 'SELECT name FROM users WHERE id = ? AND status = ?',
19 'SELECT name FROM users WHERE id = :param1 AND status = :param2',
20 array(1 => ':param1', 2 => ':param2'),
23 "UPDATE users SET name = '???', status = ?",
24 "UPDATE users SET name = '???', status = :param1",
25 array(1 => ':param1'),
28 "UPDATE users SET status = ?, name = '???'",
29 "UPDATE users SET status = :param1, name = '???'",
30 array(1 => ':param1'),
33 "UPDATE users SET foo = ?, name = '???', status = ?",
34 "UPDATE users SET foo = :param1, name = '???', status = :param2",
35 array(1 => ':param1', 2 => ':param2'),
38 'UPDATE users SET name = "???", status = ?',
39 'UPDATE users SET name = "???", status = :param1',
40 array(1 => ':param1'),
43 'UPDATE users SET status = ?, name = "???"',
44 'UPDATE users SET status = :param1, name = "???"',
45 array(1 => ':param1'),
48 'UPDATE users SET foo = ?, name = "???", status = ?',
49 'UPDATE users SET foo = :param1, name = "???", status = :param2',
50 array(1 => ':param1', 2 => ':param2'),
53 'SELECT * FROM users WHERE id = ? AND name = "" AND status = ?',
54 'SELECT * FROM users WHERE id = :param1 AND name = "" AND status = :param2',
55 array(1 => ':param1', 2 => ':param2'),
58 "SELECT * FROM users WHERE id = ? AND name = '' AND status = ?",
59 "SELECT * FROM users WHERE id = :param1 AND name = '' AND status = :param2",
60 array(1 => ':param1', 2 => ':param2'),
66 * @dataProvider dataConvertPositionalToNamedParameters
67 * @param string $inputSQL
68 * @param string $expectedOutputSQL
69 * @param array $expectedOutputParamsMap
71 public function testConvertPositionalToNamedParameters($inputSQL, $expectedOutputSQL, $expectedOutputParamsMap)
73 list($statement, $params) = \Doctrine\DBAL\Driver\OCI8\OCI8Statement::convertPositionalToNamedPlaceholders($inputSQL);
75 $this->assertEquals($expectedOutputSQL, $statement);
76 $this->assertEquals($expectedOutputParamsMap, $params);