ConnectionMock.php 1.87 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
     */
romanb's avatar
romanb committed
33
    public function insert($tableName, array $data)
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)
50 51 52
    {
        return $this->_fetchOneResult;
    }
romanb's avatar
romanb committed
53 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 72 73 74 75 76
    
    public function setDatabasePlatform($platform)
    {
        $this->_platformMock = $platform;
    }
    
romanb's avatar
romanb committed
77
    public function setLastInsertId($id)
78
    {
romanb's avatar
romanb committed
79
        $this->_lastInsertId = $id;
80
    }
romanb's avatar
romanb committed
81 82 83 84 85 86 87 88 89
    
    public function getInserts()
    {
        return $this->_inserts;
    }
    
    public function reset()
    {
        $this->_inserts = array();
romanb's avatar
romanb committed
90
        $this->_lastInsertId = 0;
romanb's avatar
romanb committed
91
    }
92
}