LoggingTest.php 1.98 KB
Newer Older
1 2
<?php

Michael Moravec's avatar
Michael Moravec committed
3 4
declare(strict_types=1);

5 6
namespace Doctrine\Tests\DBAL\Functional;

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

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

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

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

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

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

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

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

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