StatementTest.php 2.11 KB
Newer Older
1 2
<?php

3
namespace Doctrine\DBAL\Tests\Portability;
4

5
use Doctrine\DBAL\Driver\Statement as DriverStatement;
6
use Doctrine\DBAL\ParameterType;
7
use Doctrine\DBAL\Portability\Connection;
8
use Doctrine\DBAL\Portability\Converter;
9
use Doctrine\DBAL\Portability\Statement;
10
use PHPUnit\Framework\MockObject\MockObject;
11
use PHPUnit\Framework\TestCase;
12

13
class StatementTest extends TestCase
14
{
Sergei Morozov's avatar
Sergei Morozov committed
15
    /** @var Statement */
16 17
    protected $stmt;

18
    /** @var DriverStatement|MockObject */
19 20
    protected $wrappedStmt;

21
    protected function setUp(): void
22
    {
23
        $this->wrappedStmt = $this->createMock(DriverStatement::class);
24 25
        $converter         = new Converter(false, false, null);
        $this->stmt        = new Statement($this->wrappedStmt, $converter);
26 27 28 29 30
    }

    /**
     * @group DBAL-726
     */
31
    public function testBindParam(): void
32 33 34
    {
        $column   = 'mycolumn';
        $variable = 'myvalue';
35
        $type     = ParameterType::STRING;
36 37
        $length   = 666;

38
        $this->wrappedStmt->expects(self::once())
39 40
            ->method('bindParam')
            ->with($column, $variable, $type, $length)
41
            ->will(self::returnValue(true));
42

43
        self::assertTrue($this->stmt->bindParam($column, $variable, $type, $length));
44 45
    }

46
    public function testBindValue(): void
47 48 49
    {
        $param = 'myparam';
        $value = 'myvalue';
50
        $type  = ParameterType::STRING;
51

52
        $this->wrappedStmt->expects(self::once())
53 54
            ->method('bindValue')
            ->with($param, $value, $type)
55
            ->will(self::returnValue(true));
56

57
        self::assertTrue($this->stmt->bindValue($param, $value, $type));
58 59
    }

60
    public function testExecute(): void
61
    {
Sergei Morozov's avatar
Sergei Morozov committed
62
        $params = [
63
            'foo',
Sergei Morozov's avatar
Sergei Morozov committed
64 65
            'bar',
        ];
66

67
        $this->wrappedStmt->expects(self::once())
68
            ->method('execute')
69
            ->with($params);
70

71
        $this->stmt->execute($params);
72 73 74
    }

    /**
75
     * @return Connection|MockObject
76 77 78
     */
    protected function createConnection()
    {
Sergei Morozov's avatar
Sergei Morozov committed
79
        return $this->getMockBuilder(Connection::class)
80 81 82 83
            ->disableOriginalConstructor()
            ->getMock();
    }
}