Correctly use doctrine/dbal v3+
This commit is contained in:
parent
e1050c9373
commit
4a51827b6d
@ -13,8 +13,8 @@ namespace Symfony\Component\Lock\Store;
|
|||||||
|
|
||||||
use Doctrine\DBAL\Connection;
|
use Doctrine\DBAL\Connection;
|
||||||
use Doctrine\DBAL\DBALException;
|
use Doctrine\DBAL\DBALException;
|
||||||
|
use Doctrine\DBAL\Driver\Result;
|
||||||
use Doctrine\DBAL\DriverManager;
|
use Doctrine\DBAL\DriverManager;
|
||||||
use Doctrine\DBAL\Result;
|
|
||||||
use Doctrine\DBAL\Schema\Schema;
|
use Doctrine\DBAL\Schema\Schema;
|
||||||
use Symfony\Component\Lock\Exception\InvalidArgumentException;
|
use Symfony\Component\Lock\Exception\InvalidArgumentException;
|
||||||
use Symfony\Component\Lock\Exception\InvalidTtlException;
|
use Symfony\Component\Lock\Exception\InvalidTtlException;
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
namespace Symfony\Component\Messenger\Tests\Transport\Doctrine;
|
namespace Symfony\Component\Messenger\Tests\Transport\Doctrine;
|
||||||
|
|
||||||
use Doctrine\DBAL\DBALException;
|
use Doctrine\DBAL\DBALException;
|
||||||
|
use Doctrine\DBAL\Driver\Result;
|
||||||
use Doctrine\DBAL\Platforms\AbstractPlatform;
|
use Doctrine\DBAL\Platforms\AbstractPlatform;
|
||||||
use Doctrine\DBAL\Query\QueryBuilder;
|
use Doctrine\DBAL\Query\QueryBuilder;
|
||||||
use Doctrine\DBAL\Schema\AbstractSchemaManager;
|
use Doctrine\DBAL\Schema\AbstractSchemaManager;
|
||||||
@ -29,7 +30,7 @@ class ConnectionTest extends TestCase
|
|||||||
$queryBuilder = $this->getQueryBuilderMock();
|
$queryBuilder = $this->getQueryBuilderMock();
|
||||||
$driverConnection = $this->getDBALConnectionMock();
|
$driverConnection = $this->getDBALConnectionMock();
|
||||||
$schemaSynchronizer = $this->getSchemaSynchronizerMock();
|
$schemaSynchronizer = $this->getSchemaSynchronizerMock();
|
||||||
$stmt = $this->getStatementMock([
|
$stmt = $this->getResultMock([
|
||||||
'id' => 1,
|
'id' => 1,
|
||||||
'body' => '{"message":"Hi"}',
|
'body' => '{"message":"Hi"}',
|
||||||
'headers' => json_encode(['type' => DummyMessage::class]),
|
'headers' => json_encode(['type' => DummyMessage::class]),
|
||||||
@ -63,7 +64,7 @@ class ConnectionTest extends TestCase
|
|||||||
$queryBuilder = $this->getQueryBuilderMock();
|
$queryBuilder = $this->getQueryBuilderMock();
|
||||||
$driverConnection = $this->getDBALConnectionMock();
|
$driverConnection = $this->getDBALConnectionMock();
|
||||||
$schemaSynchronizer = $this->getSchemaSynchronizerMock();
|
$schemaSynchronizer = $this->getSchemaSynchronizerMock();
|
||||||
$stmt = $this->getStatementMock(false);
|
$stmt = $this->getResultMock(false);
|
||||||
|
|
||||||
$queryBuilder
|
$queryBuilder
|
||||||
->method('getParameters')
|
->method('getParameters')
|
||||||
@ -142,12 +143,12 @@ class ConnectionTest extends TestCase
|
|||||||
return $queryBuilder;
|
return $queryBuilder;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getStatementMock($expectedResult)
|
private function getResultMock($expectedResult)
|
||||||
{
|
{
|
||||||
$stmt = $this->createMock(Statement::class);
|
$stmt = $this->createMock(interface_exists(Result::class) ? Result::class : Statement::class);
|
||||||
|
|
||||||
$stmt->expects($this->once())
|
$stmt->expects($this->once())
|
||||||
->method(method_exists(Statement::class, 'fetchAssociative') ? 'fetchAssociative' : 'fetch')
|
->method(interface_exists(Result::class) ? 'fetchAssociative' : 'fetch')
|
||||||
->willReturn($expectedResult);
|
->willReturn($expectedResult);
|
||||||
|
|
||||||
return $stmt;
|
return $stmt;
|
||||||
@ -262,7 +263,7 @@ class ConnectionTest extends TestCase
|
|||||||
$driverConnection = $this->getDBALConnectionMock();
|
$driverConnection = $this->getDBALConnectionMock();
|
||||||
$schemaSynchronizer = $this->getSchemaSynchronizerMock();
|
$schemaSynchronizer = $this->getSchemaSynchronizerMock();
|
||||||
$id = 1;
|
$id = 1;
|
||||||
$stmt = $this->getStatementMock([
|
$stmt = $this->getResultMock([
|
||||||
'id' => $id,
|
'id' => $id,
|
||||||
'body' => '{"message":"Hi"}',
|
'body' => '{"message":"Hi"}',
|
||||||
'headers' => json_encode(['type' => DummyMessage::class]),
|
'headers' => json_encode(['type' => DummyMessage::class]),
|
||||||
@ -307,9 +308,9 @@ class ConnectionTest extends TestCase
|
|||||||
'headers' => json_encode(['type' => DummyMessage::class]),
|
'headers' => json_encode(['type' => DummyMessage::class]),
|
||||||
];
|
];
|
||||||
|
|
||||||
$stmt = $this->createMock(Statement::class);
|
$stmt = $this->createMock(interface_exists(Result::class) ? Result::class : Statement::class);
|
||||||
$stmt->expects($this->once())
|
$stmt->expects($this->once())
|
||||||
->method(method_exists(Statement::class, 'fetchAllAssociative') ? 'fetchAllAssociative' : 'fetchAll')
|
->method(interface_exists(Result::class) ? 'fetchAllAssociative' : 'fetchAll')
|
||||||
->willReturn([$message1, $message2]);
|
->willReturn([$message1, $message2]);
|
||||||
|
|
||||||
$driverConnection
|
$driverConnection
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
namespace Symfony\Component\Messenger\Tests\Transport\Doctrine;
|
namespace Symfony\Component\Messenger\Tests\Transport\Doctrine;
|
||||||
|
|
||||||
|
use Doctrine\DBAL\Driver\Result;
|
||||||
use Doctrine\DBAL\DriverManager;
|
use Doctrine\DBAL\DriverManager;
|
||||||
use Doctrine\DBAL\Version;
|
use Doctrine\DBAL\Version;
|
||||||
use PHPUnit\Framework\TestCase;
|
use PHPUnit\Framework\TestCase;
|
||||||
@ -71,7 +72,7 @@ class DoctrineIntegrationTest extends TestCase
|
|||||||
->setParameter(':body', '{"message": "Hi i am delayed"}')
|
->setParameter(':body', '{"message": "Hi i am delayed"}')
|
||||||
->execute();
|
->execute();
|
||||||
|
|
||||||
$available_at = new \DateTime(method_exists($stmt, 'fetchOne') ? $stmt->fetchOne() : $stmt->fetchColumn());
|
$available_at = new \DateTime($stmt instanceof Result ? $stmt->fetchOne() : $stmt->fetchColumn());
|
||||||
|
|
||||||
$now = new \DateTime();
|
$now = new \DateTime();
|
||||||
$now->modify('+60 seconds');
|
$now->modify('+60 seconds');
|
||||||
|
@ -13,6 +13,7 @@ namespace Symfony\Component\Messenger\Transport\Doctrine;
|
|||||||
|
|
||||||
use Doctrine\DBAL\Connection as DBALConnection;
|
use Doctrine\DBAL\Connection as DBALConnection;
|
||||||
use Doctrine\DBAL\DBALException;
|
use Doctrine\DBAL\DBALException;
|
||||||
|
use Doctrine\DBAL\Driver\Result;
|
||||||
use Doctrine\DBAL\Exception\TableNotFoundException;
|
use Doctrine\DBAL\Exception\TableNotFoundException;
|
||||||
use Doctrine\DBAL\Query\QueryBuilder;
|
use Doctrine\DBAL\Query\QueryBuilder;
|
||||||
use Doctrine\DBAL\Schema\Schema;
|
use Doctrine\DBAL\Schema\Schema;
|
||||||
@ -163,7 +164,7 @@ class Connection
|
|||||||
$query->getParameters(),
|
$query->getParameters(),
|
||||||
$query->getParameterTypes()
|
$query->getParameterTypes()
|
||||||
);
|
);
|
||||||
$doctrineEnvelope = method_exists($stmt, 'fetchAssociative') ? $stmt->fetchAssociative() : $stmt->fetch();
|
$doctrineEnvelope = $stmt instanceof Result ? $stmt->fetchAssociative() : $stmt->fetch();
|
||||||
|
|
||||||
if (false === $doctrineEnvelope) {
|
if (false === $doctrineEnvelope) {
|
||||||
$this->driverConnection->commit();
|
$this->driverConnection->commit();
|
||||||
@ -251,7 +252,7 @@ class Connection
|
|||||||
|
|
||||||
$stmt = $this->executeQuery($queryBuilder->getSQL(), $queryBuilder->getParameters(), $queryBuilder->getParameterTypes());
|
$stmt = $this->executeQuery($queryBuilder->getSQL(), $queryBuilder->getParameters(), $queryBuilder->getParameterTypes());
|
||||||
|
|
||||||
return method_exists($stmt, 'fetchOne') ? $stmt->fetchOne() : $stmt->fetchColumn();
|
return $stmt instanceof Result ? $stmt->fetchOne() : $stmt->fetchColumn();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function findAll(int $limit = null): array
|
public function findAll(int $limit = null): array
|
||||||
@ -262,7 +263,7 @@ class Connection
|
|||||||
}
|
}
|
||||||
|
|
||||||
$stmt = $this->executeQuery($queryBuilder->getSQL(), $queryBuilder->getParameters(), $queryBuilder->getParameterTypes());
|
$stmt = $this->executeQuery($queryBuilder->getSQL(), $queryBuilder->getParameters(), $queryBuilder->getParameterTypes());
|
||||||
$data = method_exists($stmt, 'fetchAllAssociative') ? $stmt->fetchAllAssociative() : $stmt->fetchAll();
|
$data = $stmt instanceof Result ? $stmt->fetchAllAssociative() : $stmt->fetchAll();
|
||||||
|
|
||||||
return array_map(function ($doctrineEnvelope) {
|
return array_map(function ($doctrineEnvelope) {
|
||||||
return $this->decodeEnvelopeHeaders($doctrineEnvelope);
|
return $this->decodeEnvelopeHeaders($doctrineEnvelope);
|
||||||
@ -275,7 +276,7 @@ class Connection
|
|||||||
->where('m.id = ?');
|
->where('m.id = ?');
|
||||||
|
|
||||||
$stmt = $this->executeQuery($queryBuilder->getSQL(), [$id]);
|
$stmt = $this->executeQuery($queryBuilder->getSQL(), [$id]);
|
||||||
$data = method_exists($stmt, 'fetchAssociative') ? $stmt->fetchAssociative() : $stmt->fetch();
|
$data = $stmt instanceof Result ? $stmt->fetchAssociative() : $stmt->fetch();
|
||||||
|
|
||||||
return false === $data ? null : $this->decodeEnvelopeHeaders($data);
|
return false === $data ? null : $this->decodeEnvelopeHeaders($data);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user