ConnectionMock.php 1.78 KB
Newer Older
1 2
<?php

3
namespace Doctrine\Tests\Mocks;
romanb's avatar
romanb committed
4

5
class ConnectionMock extends \Doctrine\DBAL\Connection
6
{
7
    private $_fetchOneResult;
8
    private $_platformMock;
romanb's avatar
romanb committed
9
    private $_lastInsertId = 0;
romanb's avatar
romanb committed
10
    private $_inserts = array();
11

12 13
    public function __construct(array $params, $driver, $config = null, $eventManager = null)
    {
14
        $this->_platformMock = new DatabasePlatformMock();
15 16 17 18

        parent::__construct($params, $driver, $config, $eventManager);

        // Override possible assignment of platform to database platform mock
romanb's avatar
romanb committed
19
        $this->_platform = $this->_platformMock;
20
    }
21

22 23 24
    /**
     * @override
     */
romanb's avatar
romanb committed
25
    public function getDatabasePlatform()
26
    {
romanb's avatar
romanb committed
27
        return $this->_platformMock;
28
    }
29

30 31 32
    /**
     * @override
     */
33
    public function insert($tableName, array $data, array $types = array())
34
    {
romanb's avatar
romanb committed
35
        $this->_inserts[$tableName][] = $data;
36
    }
37

romanb's avatar
romanb committed
38 39 40
    /**
     * @override
     */
romanb's avatar
romanb committed
41
    public function lastInsertId($seqName = null)
romanb's avatar
romanb committed
42
    {
romanb's avatar
romanb committed
43 44
        return $this->_lastInsertId;
    }
45 46 47 48

    /**
     * @override
     */
49
    public function fetchColumn($statement, array $params = array(), $colnum = 0, array $types = array())
50 51 52
    {
        return $this->_fetchOneResult;
    }
53

romanb's avatar
romanb committed
54 55 56 57 58
    /**
     * @override
     */
    public function quote($input, $type = null)
    {
romanb's avatar
romanb committed
59
        if (is_string($input)) {
romanb's avatar
romanb committed
60 61 62
            return "'" . $input . "'";
        }
        return $input;
romanb's avatar
romanb committed
63
    }
64

65
    /* Mock API */
66 67 68 69 70

    public function setFetchOneResult($fetchOneResult)
    {
        $this->_fetchOneResult = $fetchOneResult;
    }
71

romanb's avatar
romanb committed
72
    public function setLastInsertId($id)
73
    {
romanb's avatar
romanb committed
74
        $this->_lastInsertId = $id;
75
    }
76

romanb's avatar
romanb committed
77 78 79 80
    public function getInserts()
    {
        return $this->_inserts;
    }
81

romanb's avatar
romanb committed
82 83 84
    public function reset()
    {
        $this->_inserts = array();
romanb's avatar
romanb committed
85
        $this->_lastInsertId = 0;
romanb's avatar
romanb committed
86
    }
87
}