Skip to content

Commit 1d7b3e4

Browse files
committed
Merge branch '4.0.x' into 4.1.x
* 4.0.x: Use native intersection types in test suite (#6312) Migrate PHPUnit test suite to attributes (#6311)
2 parents 4524486 + f3defbb commit 1d7b3e4

File tree

92 files changed

+285
-329
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+285
-329
lines changed

tests/Connection/ExpandArrayParametersTest.php

+5-9
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use Doctrine\DBAL\ParameterType;
1313
use Doctrine\DBAL\SQL\Parser;
1414
use Doctrine\DBAL\Types\Type;
15+
use PHPUnit\Framework\Attributes\DataProvider;
1516
use PHPUnit\Framework\TestCase;
1617

1718
use function hex2bin;
@@ -359,9 +360,8 @@ public static function dataExpandListParameters(): iterable
359360
* @param array<int, mixed>|array<string, mixed> $expectedParams
360361
* @param array<int, string|Type|ParameterType>|array<string, string|Type|ParameterType> $expectedTypes
361362
* @psalm-param WrapperParameterTypeArray $types
362-
*
363-
* @dataProvider dataExpandListParameters
364363
*/
364+
#[DataProvider('dataExpandListParameters')]
365365
public function testExpandListParameters(
366366
string $query,
367367
array $params,
@@ -413,21 +413,17 @@ public static function missingNamedParameterProvider(): iterable
413413
/**
414414
* @param array<string, mixed> $params
415415
* @param array<string, ArrayParameterType> $types
416-
*
417-
* @dataProvider missingNamedParameterProvider
418416
*/
417+
#[DataProvider('missingNamedParameterProvider')]
419418
public function testMissingNamedParameter(string $query, array $params, array $types = []): void
420419
{
421420
$this->expectException(MissingNamedParameter::class);
422421

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

426-
/**
427-
* @param list<mixed> $params
428-
*
429-
* @dataProvider missingPositionalParameterProvider
430-
*/
425+
/** @param list<mixed> $params */
426+
#[DataProvider('missingPositionalParameterProvider')]
431427
public function testMissingPositionalParameter(string $query, array $params): void
432428
{
433429
$this->expectException(MissingPositionalParameter::class);

tests/ConnectionTest.php

+8-11
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@
1919
use Doctrine\DBAL\Schema\SchemaManagerFactory;
2020
use Doctrine\DBAL\Schema\SQLiteSchemaManager;
2121
use Doctrine\DBAL\ServerVersionProvider;
22+
use PHPUnit\Framework\Attributes\DataProvider;
23+
use PHPUnit\Framework\Attributes\RequiresPhpExtension;
2224
use PHPUnit\Framework\MockObject\MockObject;
2325
use PHPUnit\Framework\TestCase;
2426
use Psr\Cache\CacheItemInterface;
2527
use Psr\Cache\CacheItemPoolInterface;
2628

27-
/**
28-
* @requires extension pdo_mysql
29-
* @psalm-import-type Params from DriverManager
30-
*/
29+
/** @psalm-import-type Params from DriverManager */
30+
#[RequiresPhpExtension('pdo_mysql')]
3131
class ConnectionTest extends TestCase
3232
{
3333
private Connection $connection;
@@ -45,8 +45,7 @@ protected function setUp(): void
4545
$this->connection = DriverManager::getConnection(self::CONNECTION_PARAMS);
4646
}
4747

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

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

98-
/**
99-
* @requires extension pdo_sqlite
100-
* @dataProvider getQueryMethods
101-
*/
97+
#[RequiresPhpExtension('pdo_sqlite')]
98+
#[DataProvider('getQueryMethods')]
10299
public function testDriverExceptionIsWrapped(callable $callback): void
103100
{
104101
$this->expectException(Exception::class);
@@ -377,7 +374,7 @@ public function testDeleteWithIsNull(): void
377374
);
378375
}
379376

380-
/** @dataProvider fetchModeProvider */
377+
#[DataProvider('fetchModeProvider')]
381378
public function testFetch(string $method, callable $invoke, mixed $expected): void
382379
{
383380
$query = 'SELECT * FROM foo WHERE bar = ?';

tests/Driver/AbstractDriverTestCase.php

+1-2
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,7 @@ abstract protected function createSchemaManager(Connection $connection): Abstrac
5757

5858
abstract protected function createExceptionConverter(): ExceptionConverter;
5959

60-
/** @return Connection&MockObject */
61-
protected function getConnectionMock(): Connection
60+
protected function getConnectionMock(): Connection&MockObject
6261
{
6362
return $this->createMock(Connection::class);
6463
}

tests/Driver/AbstractOracleDriver/EasyConnectStringTest.php

+3-5
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,13 @@
55
namespace Doctrine\DBAL\Tests\Driver\AbstractOracleDriver;
66

77
use Doctrine\DBAL\Driver\AbstractOracleDriver\EasyConnectString;
8+
use PHPUnit\Framework\Attributes\DataProvider;
89
use PHPUnit\Framework\TestCase;
910

1011
class EasyConnectStringTest extends TestCase
1112
{
12-
/**
13-
* @param mixed[] $params
14-
*
15-
* @dataProvider connectionParametersProvider
16-
*/
13+
/** @param mixed[] $params */
14+
#[DataProvider('connectionParametersProvider')]
1715
public function testFromConnectionParameters(array $params, string $expected): void
1816
{
1917
$string = EasyConnectString::fromConnectionParameters($params);

tests/Driver/IBMDB2/DataSourceNameTest.php

+3-5
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,13 @@
55
namespace Doctrine\DBAL\Tests\Driver\IBMDB2;
66

77
use Doctrine\DBAL\Driver\IBMDB2\DataSourceName;
8+
use PHPUnit\Framework\Attributes\DataProvider;
89
use PHPUnit\Framework\TestCase;
910

1011
class DataSourceNameTest extends TestCase
1112
{
12-
/**
13-
* @param mixed[] $params
14-
*
15-
* @dataProvider connectionParametersProvider
16-
*/
13+
/** @param mixed[] $params */
14+
#[DataProvider('connectionParametersProvider')]
1715
public function testFromConnectionParameters(array $params, string $expected): void
1816
{
1917
$dsn = DataSourceName::fromConnectionParameters($params);

tests/Driver/Mysqli/ConnectionTest.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@
77
use Doctrine\DBAL\Driver\Mysqli\Driver;
88
use Doctrine\DBAL\Driver\Mysqli\Exception\HostRequired;
99
use Doctrine\DBAL\Tests\FunctionalTestCase;
10+
use PHPUnit\Framework\Attributes\RequiresPhpExtension;
1011

11-
/** @requires extension mysqli */
12+
#[RequiresPhpExtension('mysqli')]
1213
class ConnectionTest extends FunctionalTestCase
1314
{
1415
public function testHostnameIsRequiredForPersistentConnection(): void

tests/Driver/OCI8/ConvertPositionalToNamedPlaceholdersTest.php

+3-5
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,13 @@
66

77
use Doctrine\DBAL\Driver\OCI8\ConvertPositionalToNamedPlaceholders;
88
use Doctrine\DBAL\SQL\Parser;
9+
use PHPUnit\Framework\Attributes\DataProvider;
910
use PHPUnit\Framework\TestCase;
1011

1112
class ConvertPositionalToNamedPlaceholdersTest extends TestCase
1213
{
13-
/**
14-
* @param mixed[] $expectedOutputParamsMap
15-
*
16-
* @dataProvider positionalToNamedPlaceholdersProvider
17-
*/
14+
/** @param mixed[] $expectedOutputParamsMap */
15+
#[DataProvider('positionalToNamedPlaceholdersProvider')]
1816
public function testConvertPositionalToNamedParameters(
1917
string $inputSQL,
2018
string $expectedOutputSQL,

tests/Driver/OCI8/DriverTest.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@
88
use Doctrine\DBAL\Driver\OCI8\Driver;
99
use Doctrine\DBAL\Driver\OCI8\Exception\InvalidConfiguration;
1010
use Doctrine\DBAL\Tests\Driver\AbstractOracleDriverTestCase;
11+
use PHPUnit\Framework\Attributes\RequiresPhpExtension;
1112

12-
/** @requires extension oci8 */
13+
#[RequiresPhpExtension('oci8')]
1314
class DriverTest extends AbstractOracleDriverTestCase
1415
{
1516
public function testPersistentAndExclusiveAreMutuallyExclusive(): void

tests/Driver/PDO/ExceptionTest.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@
66

77
use Doctrine\DBAL\Driver\PDO\Exception;
88
use PDOException;
9+
use PHPUnit\Framework\Attributes\RequiresPhpExtension;
910
use PHPUnit\Framework\TestCase;
1011

11-
/** @requires extension pdo */
12+
#[RequiresPhpExtension('pdo')]
1213
class ExceptionTest extends TestCase
1314
{
1415
private const ERROR_CODE = 666;

tests/Driver/VersionAwarePlatformDriverTest.php

+5-4
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,18 @@
1313
use Doctrine\DBAL\Platforms\MySQL80Platform;
1414
use Doctrine\DBAL\Platforms\MySQLPlatform;
1515
use Doctrine\DBAL\Platforms\PostgreSQLPlatform;
16+
use PHPUnit\Framework\Attributes\DataProvider;
1617
use PHPUnit\Framework\TestCase;
1718

1819
class VersionAwarePlatformDriverTest extends TestCase
1920
{
20-
/** @dataProvider mySQLVersionProvider */
21+
#[DataProvider('mySQLVersionProvider')]
2122
public function testMySQLi(string $version, string $expectedClass): void
2223
{
2324
$this->assertDriverInstantiatesDatabasePlatform(new Driver\Mysqli\Driver(), $version, $expectedClass);
2425
}
2526

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

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

54-
/** @dataProvider postgreSQLVersionProvider */
55+
#[DataProvider('postgreSQLVersionProvider')]
5556
public function testPDOPgSQL(string $version, string $expectedClass): void
5657
{
5758
$this->assertDriverInstantiatesDatabasePlatform(new Driver\PDO\PgSQL\Driver(), $version, $expectedClass);

tests/DriverManagerTest.php

+7-8
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
use Doctrine\DBAL\Exception;
1212
use Doctrine\DBAL\Tools\DsnParser;
1313
use Doctrine\Deprecations\PHPUnit\VerifyDeprecations;
14+
use PHPUnit\Framework\Attributes\DataProvider;
15+
use PHPUnit\Framework\Attributes\RequiresPhpExtension;
1416
use PHPUnit\Framework\TestCase;
1517
use stdClass;
1618

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

40-
/** @requires extension sqlite3 */
42+
#[RequiresPhpExtension('sqlite3')]
4143
public function testCustomWrapper(): void
4244
{
4345
$wrapper = $this->createMock(Connection::class);
@@ -53,7 +55,7 @@ public function testCustomWrapper(): void
5355
self::assertInstanceOf($wrapperClass, $conn);
5456
}
5557

56-
/** @requires extension pdo_sqlite */
58+
#[RequiresPhpExtension('pdo_sqlite')]
5759
public function testDefaultWrapper(): void
5860
{
5961
$options = [
@@ -66,10 +68,8 @@ public function testDefaultWrapper(): void
6668
self::assertSame(Connection::class, $conn::class);
6769
}
6870

69-
/**
70-
* @requires extension pdo_sqlite
71-
* @psalm-suppress InvalidArgument
72-
*/
71+
/** @psalm-suppress InvalidArgument */
72+
#[RequiresPhpExtension('pdo_sqlite')]
7373
public function testInvalidWrapperClass(): void
7474
{
7575
$this->expectException(Exception::class);
@@ -104,9 +104,8 @@ public function testValidDriverClass(): void
104104
/**
105105
* @param Params $params
106106
* @param array<string, mixed>|false $expected
107-
*
108-
* @dataProvider databaseUrlProvider
109107
*/
108+
#[DataProvider('databaseUrlProvider')]
110109
public function testDatabaseUrl(string $url, array $params, array|false $expected): void
111110
{
112111
$parser = new DsnParser(['mysql' => 'pdo_mysql', 'sqlite' => 'pdo_sqlite']);

0 commit comments

Comments
 (0)