LoggingTest.php 1.95 KB
Newer Older
1 2 3 4
<?php

namespace Doctrine\Tests\DBAL\Functional;

Sergei Morozov's avatar
Sergei Morozov committed
5
use Doctrine\DBAL\Logging\SQLLogger;
Sergei Morozov's avatar
Sergei Morozov committed
6 7 8
use Doctrine\Tests\DbalFunctionalTestCase;

class LoggingTest extends DbalFunctionalTestCase
9
{
10
    public function testLogExecuteQuery() : void
11
    {
Sergei Morozov's avatar
Sergei Morozov committed
12
        $sql = $this->connection->getDatabasePlatform()->getDummySelectSQL();
13

Sergei Morozov's avatar
Sergei Morozov committed
14
        $logMock = $this->createMock(SQLLogger::class);
15 16
        $logMock->expects($this->at(0))
                ->method('startQuery')
Sergei Morozov's avatar
Sergei Morozov committed
17
                ->with($this->equalTo($sql), $this->equalTo([]), $this->equalTo([]));
18 19
        $logMock->expects($this->at(1))
                ->method('stopQuery');
Sergei Morozov's avatar
Sergei Morozov committed
20 21
        $this->connection->getConfiguration()->setSQLLogger($logMock);
        $this->connection->executeQuery($sql, []);
22 23
    }

24
    public function testLogExecuteUpdate() : void
25
    {
26 27
        $this->markTestSkipped('Test breaks MySQL but works on all other platforms (Unbuffered Queries stuff).');

Sergei Morozov's avatar
Sergei Morozov committed
28
        $sql = $this->connection->getDatabasePlatform()->getDummySelectSQL();
29

Sergei Morozov's avatar
Sergei Morozov committed
30
        $logMock = $this->createMock(SQLLogger::class);
31 32
        $logMock->expects($this->at(0))
                ->method('startQuery')
Sergei Morozov's avatar
Sergei Morozov committed
33
                ->with($this->equalTo($sql), $this->equalTo([]), $this->equalTo([]));
34 35
        $logMock->expects($this->at(1))
                ->method('stopQuery');
Sergei Morozov's avatar
Sergei Morozov committed
36 37
        $this->connection->getConfiguration()->setSQLLogger($logMock);
        $this->connection->executeUpdate($sql, []);
38 39
    }

40
    public function testLogPrepareExecute() : void
41
    {
Sergei Morozov's avatar
Sergei Morozov committed
42
        $sql = $this->connection->getDatabasePlatform()->getDummySelectSQL();
43

Sergei Morozov's avatar
Sergei Morozov committed
44
        $logMock = $this->createMock(SQLLogger::class);
45
        $logMock->expects($this->once())
46
                ->method('startQuery')
Sergei Morozov's avatar
Sergei Morozov committed
47
                ->with($this->equalTo($sql), $this->equalTo([]));
48 49
        $logMock->expects($this->at(1))
                ->method('stopQuery');
Sergei Morozov's avatar
Sergei Morozov committed
50
        $this->connection->getConfiguration()->setSQLLogger($logMock);
51

Sergei Morozov's avatar
Sergei Morozov committed
52
        $stmt = $this->connection->prepare($sql);
53 54
        $stmt->execute();
    }
55
}