1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
<?php
declare(strict_types=1);
namespace Doctrine\DBAL\Tests\Driver;
use Doctrine\DBAL\Connection;
use Doctrine\DBAL\Driver;
use Doctrine\DBAL\Driver\API\ExceptionConverter;
use Doctrine\DBAL\Platforms\AbstractPlatform;
use Doctrine\DBAL\Schema\AbstractSchemaManager;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
/** @template P of AbstractPlatform */
abstract class AbstractDriverTestCase extends TestCase
{
/**
* The driver mock under test.
*/
protected Driver $driver;
protected function setUp(): void
{
$this->driver = $this->createDriver();
}
public function testReturnsExceptionConverter(): void
{
self::assertEquals($this->createExceptionConverter(), $this->driver->getExceptionConverter());
}
/**
* Factory method for creating the driver instance under test.
*/
abstract protected function createDriver(): Driver;
/**
* Factory method for creating the the platform instance return by the driver under test.
*
* The platform instance returned by this method must be the same as returned by
* the driver's getDatabasePlatform() method.
*
* @return P
*/
abstract protected function createPlatform(): AbstractPlatform;
/**
* Factory method for creating the the schema manager instance return by the driver under test.
*
* The schema manager instance returned by this method must be the same as returned by
* the driver's getSchemaManager() method.
*
* @param Connection $connection The underlying connection to use.
*/
abstract protected function createSchemaManager(Connection $connection): AbstractSchemaManager;
abstract protected function createExceptionConverter(): ExceptionConverter;
protected function getConnectionMock(): Connection&MockObject
{
return $this->createMock(Connection::class);
}
}
|