Rajout de doctrine/orm
[zf2.biz/galerie.git] / vendor / doctrine / dbal / tests / Doctrine / Tests / DBAL / UtilTest.php
1 <?php
2
3 namespace Doctrine\Tests\DBAL;
4
5 require_once __DIR__ . '/../TestInit.php';
6
7 class UtilTest extends \Doctrine\Tests\DbalTestCase
8 {
9     static public function dataConvertPositionalToNamedParameters()
10     {
11         return array(
12             array(
13                 'SELECT name FROM users WHERE id = ?',
14                 'SELECT name FROM users WHERE id = :param1',
15                 array(1 => ':param1')
16             ),
17             array(
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'),
21             ),
22             array(
23                 "UPDATE users SET name = '???', status = ?",
24                 "UPDATE users SET name = '???', status = :param1",
25                 array(1 => ':param1'),
26             ),
27             array(
28                 "UPDATE users SET status = ?, name = '???'",
29                 "UPDATE users SET status = :param1, name = '???'",
30                 array(1 => ':param1'),
31             ),
32             array(
33                 "UPDATE users SET foo = ?, name = '???', status = ?",
34                 "UPDATE users SET foo = :param1, name = '???', status = :param2",
35                 array(1 => ':param1', 2 => ':param2'),
36             ),
37             array(
38                 'UPDATE users SET name = "???", status = ?',
39                 'UPDATE users SET name = "???", status = :param1',
40                 array(1 => ':param1'),
41             ),
42             array(
43                 'UPDATE users SET status = ?, name = "???"',
44                 'UPDATE users SET status = :param1, name = "???"',
45                 array(1 => ':param1'),
46             ),
47             array(
48                 'UPDATE users SET foo = ?, name = "???", status = ?',
49                 'UPDATE users SET foo = :param1, name = "???", status = :param2',
50                 array(1 => ':param1', 2 => ':param2'),
51             ),
52             array(
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'),
56             ),
57             array(
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'),
61             )
62         );
63     }
64
65     /**
66      * @dataProvider dataConvertPositionalToNamedParameters
67      * @param string $inputSQL
68      * @param string $expectedOutputSQL
69      * @param array $expectedOutputParamsMap
70      */
71     public function testConvertPositionalToNamedParameters($inputSQL, $expectedOutputSQL, $expectedOutputParamsMap)
72     {
73         list($statement, $params) = \Doctrine\DBAL\Driver\OCI8\OCI8Statement::convertPositionalToNamedPlaceholders($inputSQL);
74
75         $this->assertEquals($expectedOutputSQL, $statement);
76         $this->assertEquals($expectedOutputParamsMap, $params);
77     }
78 }