Skip to content

Commit

Permalink
Merge branch '4.0.x' into 4.1.x
Browse files Browse the repository at this point in the history
* 4.0.x:
  Use native intersection types in test suite (#6312)
  Migrate PHPUnit test suite to attributes (#6311)
  • Loading branch information
derrabus committed Feb 21, 2024
2 parents 4524486 + f3defbb commit 1d7b3e4
Show file tree
Hide file tree
Showing 92 changed files with 285 additions and 329 deletions.
14 changes: 5 additions & 9 deletions tests/Connection/ExpandArrayParametersTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
use Doctrine\DBAL\ParameterType;
use Doctrine\DBAL\SQL\Parser;
use Doctrine\DBAL\Types\Type;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;

use function hex2bin;
Expand Down Expand Up @@ -359,9 +360,8 @@ public static function dataExpandListParameters(): iterable
* @param array<int, mixed>|array<string, mixed> $expectedParams
* @param array<int, string|Type|ParameterType>|array<string, string|Type|ParameterType> $expectedTypes
* @psalm-param WrapperParameterTypeArray $types
*
* @dataProvider dataExpandListParameters
*/
#[DataProvider('dataExpandListParameters')]
public function testExpandListParameters(
string $query,
array $params,
Expand Down Expand Up @@ -413,21 +413,17 @@ public static function missingNamedParameterProvider(): iterable
/**
* @param array<string, mixed> $params
* @param array<string, ArrayParameterType> $types
*
* @dataProvider missingNamedParameterProvider
*/
#[DataProvider('missingNamedParameterProvider')]
public function testMissingNamedParameter(string $query, array $params, array $types = []): void
{
$this->expectException(MissingNamedParameter::class);

$this->expandArrayParameters($query, $params, $types);
}

/**
* @param list<mixed> $params
*
* @dataProvider missingPositionalParameterProvider
*/
/** @param list<mixed> $params */
#[DataProvider('missingPositionalParameterProvider')]
public function testMissingPositionalParameter(string $query, array $params): void
{
$this->expectException(MissingPositionalParameter::class);
Expand Down
19 changes: 8 additions & 11 deletions tests/ConnectionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,15 @@
use Doctrine\DBAL\Schema\SchemaManagerFactory;
use Doctrine\DBAL\Schema\SQLiteSchemaManager;
use Doctrine\DBAL\ServerVersionProvider;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
use Psr\Cache\CacheItemInterface;
use Psr\Cache\CacheItemPoolInterface;

/**
* @requires extension pdo_mysql
* @psalm-import-type Params from DriverManager
*/
/** @psalm-import-type Params from DriverManager */
#[RequiresPhpExtension('pdo_mysql')]
class ConnectionTest extends TestCase
{
private Connection $connection;
Expand All @@ -45,8 +45,7 @@ protected function setUp(): void
$this->connection = DriverManager::getConnection(self::CONNECTION_PARAMS);
}

/** @return Connection&MockObject */
private function getExecuteStatementMockConnection(): Connection
private function getExecuteStatementMockConnection(): Connection&MockObject
{
$driverMock = $this->createMock(Driver::class);

Expand Down Expand Up @@ -95,10 +94,8 @@ public function testGetDriver(): void
self::assertInstanceOf(Driver\PDO\MySQL\Driver::class, $this->connection->getDriver());
}

/**
* @requires extension pdo_sqlite
* @dataProvider getQueryMethods
*/
#[RequiresPhpExtension('pdo_sqlite')]
#[DataProvider('getQueryMethods')]
public function testDriverExceptionIsWrapped(callable $callback): void
{
$this->expectException(Exception::class);
Expand Down Expand Up @@ -377,7 +374,7 @@ public function testDeleteWithIsNull(): void
);
}

/** @dataProvider fetchModeProvider */
#[DataProvider('fetchModeProvider')]
public function testFetch(string $method, callable $invoke, mixed $expected): void
{
$query = 'SELECT * FROM foo WHERE bar = ?';
Expand Down
3 changes: 1 addition & 2 deletions tests/Driver/AbstractDriverTestCase.php
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,7 @@ abstract protected function createSchemaManager(Connection $connection): Abstrac

abstract protected function createExceptionConverter(): ExceptionConverter;

/** @return Connection&MockObject */
protected function getConnectionMock(): Connection
protected function getConnectionMock(): Connection&MockObject
{
return $this->createMock(Connection::class);
}
Expand Down
8 changes: 3 additions & 5 deletions tests/Driver/AbstractOracleDriver/EasyConnectStringTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,13 @@
namespace Doctrine\DBAL\Tests\Driver\AbstractOracleDriver;

use Doctrine\DBAL\Driver\AbstractOracleDriver\EasyConnectString;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;

class EasyConnectStringTest extends TestCase
{
/**
* @param mixed[] $params
*
* @dataProvider connectionParametersProvider
*/
/** @param mixed[] $params */
#[DataProvider('connectionParametersProvider')]
public function testFromConnectionParameters(array $params, string $expected): void
{
$string = EasyConnectString::fromConnectionParameters($params);
Expand Down
8 changes: 3 additions & 5 deletions tests/Driver/IBMDB2/DataSourceNameTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,13 @@
namespace Doctrine\DBAL\Tests\Driver\IBMDB2;

use Doctrine\DBAL\Driver\IBMDB2\DataSourceName;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;

class DataSourceNameTest extends TestCase
{
/**
* @param mixed[] $params
*
* @dataProvider connectionParametersProvider
*/
/** @param mixed[] $params */
#[DataProvider('connectionParametersProvider')]
public function testFromConnectionParameters(array $params, string $expected): void
{
$dsn = DataSourceName::fromConnectionParameters($params);
Expand Down
3 changes: 2 additions & 1 deletion tests/Driver/Mysqli/ConnectionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@
use Doctrine\DBAL\Driver\Mysqli\Driver;
use Doctrine\DBAL\Driver\Mysqli\Exception\HostRequired;
use Doctrine\DBAL\Tests\FunctionalTestCase;
use PHPUnit\Framework\Attributes\RequiresPhpExtension;

/** @requires extension mysqli */
#[RequiresPhpExtension('mysqli')]
class ConnectionTest extends FunctionalTestCase
{
public function testHostnameIsRequiredForPersistentConnection(): void
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,13 @@

use Doctrine\DBAL\Driver\OCI8\ConvertPositionalToNamedPlaceholders;
use Doctrine\DBAL\SQL\Parser;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;

class ConvertPositionalToNamedPlaceholdersTest extends TestCase
{
/**
* @param mixed[] $expectedOutputParamsMap
*
* @dataProvider positionalToNamedPlaceholdersProvider
*/
/** @param mixed[] $expectedOutputParamsMap */
#[DataProvider('positionalToNamedPlaceholdersProvider')]
public function testConvertPositionalToNamedParameters(
string $inputSQL,
string $expectedOutputSQL,
Expand Down
3 changes: 2 additions & 1 deletion tests/Driver/OCI8/DriverTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@
use Doctrine\DBAL\Driver\OCI8\Driver;
use Doctrine\DBAL\Driver\OCI8\Exception\InvalidConfiguration;
use Doctrine\DBAL\Tests\Driver\AbstractOracleDriverTestCase;
use PHPUnit\Framework\Attributes\RequiresPhpExtension;

/** @requires extension oci8 */
#[RequiresPhpExtension('oci8')]
class DriverTest extends AbstractOracleDriverTestCase
{
public function testPersistentAndExclusiveAreMutuallyExclusive(): void
Expand Down
3 changes: 2 additions & 1 deletion tests/Driver/PDO/ExceptionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,10 @@

use Doctrine\DBAL\Driver\PDO\Exception;
use PDOException;
use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use PHPUnit\Framework\TestCase;

/** @requires extension pdo */
#[RequiresPhpExtension('pdo')]
class ExceptionTest extends TestCase
{
private const ERROR_CODE = 666;
Expand Down
9 changes: 5 additions & 4 deletions tests/Driver/VersionAwarePlatformDriverTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,18 @@
use Doctrine\DBAL\Platforms\MySQL80Platform;
use Doctrine\DBAL\Platforms\MySQLPlatform;
use Doctrine\DBAL\Platforms\PostgreSQLPlatform;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;

class VersionAwarePlatformDriverTest extends TestCase
{
/** @dataProvider mySQLVersionProvider */
#[DataProvider('mySQLVersionProvider')]
public function testMySQLi(string $version, string $expectedClass): void
{
$this->assertDriverInstantiatesDatabasePlatform(new Driver\Mysqli\Driver(), $version, $expectedClass);
}

/** @dataProvider mySQLVersionProvider */
#[DataProvider('mySQLVersionProvider')]
public function testPDOMySQL(string $version, string $expectedClass): void
{
$this->assertDriverInstantiatesDatabasePlatform(new Driver\PDO\MySQL\Driver(), $version, $expectedClass);
Expand All @@ -45,13 +46,13 @@ public static function mySQLVersionProvider(): array
];
}

/** @dataProvider postgreSQLVersionProvider */
#[DataProvider('postgreSQLVersionProvider')]
public function testPgSQL(string $version, string $expectedClass): void
{
$this->assertDriverInstantiatesDatabasePlatform(new Driver\PgSQL\Driver(), $version, $expectedClass);
}

/** @dataProvider postgreSQLVersionProvider */
#[DataProvider('postgreSQLVersionProvider')]
public function testPDOPgSQL(string $version, string $expectedClass): void
{
$this->assertDriverInstantiatesDatabasePlatform(new Driver\PDO\PgSQL\Driver(), $version, $expectedClass);
Expand Down
15 changes: 7 additions & 8 deletions tests/DriverManagerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
use Doctrine\DBAL\Exception;
use Doctrine\DBAL\Tools\DsnParser;
use Doctrine\Deprecations\PHPUnit\VerifyDeprecations;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\Attributes\RequiresPhpExtension;
use PHPUnit\Framework\TestCase;
use stdClass;

Expand All @@ -37,7 +39,7 @@ public function testInvalidDriver(): void
DriverManager::getConnection(['driver' => 'invalid_driver']);
}

/** @requires extension sqlite3 */
#[RequiresPhpExtension('sqlite3')]
public function testCustomWrapper(): void
{
$wrapper = $this->createMock(Connection::class);
Expand All @@ -53,7 +55,7 @@ public function testCustomWrapper(): void
self::assertInstanceOf($wrapperClass, $conn);
}

/** @requires extension pdo_sqlite */
#[RequiresPhpExtension('pdo_sqlite')]
public function testDefaultWrapper(): void
{
$options = [
Expand All @@ -66,10 +68,8 @@ public function testDefaultWrapper(): void
self::assertSame(Connection::class, $conn::class);
}

/**
* @requires extension pdo_sqlite
* @psalm-suppress InvalidArgument
*/
/** @psalm-suppress InvalidArgument */
#[RequiresPhpExtension('pdo_sqlite')]
public function testInvalidWrapperClass(): void
{
$this->expectException(Exception::class);
Expand Down Expand Up @@ -104,9 +104,8 @@ public function testValidDriverClass(): void
/**
* @param Params $params
* @param array<string, mixed>|false $expected
*
* @dataProvider databaseUrlProvider
*/
#[DataProvider('databaseUrlProvider')]
public function testDatabaseUrl(string $url, array $params, array|false $expected): void
{
$parser = new DsnParser(['mysql' => 'pdo_mysql', 'sqlite' => 'pdo_sqlite']);
Expand Down
Loading

0 comments on commit 1d7b3e4

Please sign in to comment.