Skip to content

Commit ebfe221

Browse files
committed
Simplify test suite configuration
1 parent 0ad4c16 commit ebfe221

17 files changed

+94
-201
lines changed

tests/Doctrine/Tests/DBAL/Functional/Driver/Mysqli/ConnectionTest.php

+6-7
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use Doctrine\DBAL\Driver\Mysqli\MysqliConnection;
77
use Doctrine\DBAL\Driver\Mysqli\MysqliException;
88
use Doctrine\Tests\DbalFunctionalTestCase;
9+
use Doctrine\Tests\TestUtil;
910
use function extension_loaded;
1011
use const MYSQLI_OPT_CONNECT_TIMEOUT;
1112

@@ -57,14 +58,12 @@ public function testPing() : void
5758
*/
5859
private function getConnection(array $driverOptions) : MysqliConnection
5960
{
61+
$params = TestUtil::getConnectionParams();
62+
6063
return new MysqliConnection(
61-
[
62-
'host' => $GLOBALS['db_host'],
63-
'dbname' => $GLOBALS['db_name'],
64-
'port' => $GLOBALS['db_port'],
65-
],
66-
$GLOBALS['db_username'],
67-
$GLOBALS['db_password'],
64+
$params,
65+
$params['user'] ?? '',
66+
$params['password'] ?? '',
6867
$driverOptions
6968
);
7069
}

tests/Doctrine/Tests/DBAL/Functional/Driver/PDOSqlsrv/DriverTest.php

+6-6
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use Doctrine\DBAL\Driver\Connection;
77
use Doctrine\DBAL\Driver\PDOSqlsrv\Driver;
88
use Doctrine\Tests\DBAL\Functional\Driver\AbstractDriverTest;
9+
use Doctrine\Tests\TestUtil;
910
use PDO;
1011
use function extension_loaded;
1112

@@ -41,13 +42,12 @@ protected static function getDatabaseNameForConnectionWithoutDatabaseNameParamet
4142
*/
4243
protected function getConnection(array $driverOptions) : Connection
4344
{
45+
$params = TestUtil::getConnectionParams();
46+
4447
return $this->connection->getDriver()->connect(
45-
[
46-
'host' => $GLOBALS['db_host'],
47-
'port' => $GLOBALS['db_port'],
48-
],
49-
$GLOBALS['db_username'],
50-
$GLOBALS['db_password'],
48+
$params,
49+
$params['user'] ?? '',
50+
$params['password'] ?? '',
5151
$driverOptions
5252
);
5353
}

tests/Doctrine/Tests/TestUtil.php

+40-56
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,14 @@ class TestUtil
2121
* Gets a <b>real</b> database connection using the following parameters
2222
* of the $GLOBALS array:
2323
*
24-
* 'db_type' : The name of the Doctrine DBAL database driver to use.
25-
* 'db_username' : The username to use for connecting.
26-
* 'db_password' : The password to use for connecting.
27-
* 'db_host' : The hostname of the database to connect to.
28-
* 'db_server' : The server name of the database to connect to
29-
* (optional, some vendors allow multiple server instances with different names on the same host).
30-
* 'db_name' : The name of the database to connect to.
31-
* 'db_port' : The port of the database to connect to.
24+
* 'db_driver': The name of the Doctrine DBAL database driver to use.
25+
* 'db_user': The username to use for connecting.
26+
* 'db_password': The password to use for connecting.
27+
* 'db_host': The hostname of the database to connect to.
28+
* 'db_server': The server name of the database to connect to
29+
* (optional, some vendors allow multiple server instances with different names on the same host).
30+
* 'db_dbname': The name of the database to connect to.
31+
* 'db_port': The port of the database to connect to.
3232
*
3333
* Usually these variables of the $GLOBALS array are filled by PHPUnit based
3434
* on an XML configuration file. If no such parameters exist, an SQLite
@@ -66,21 +66,7 @@ public static function getConnectionParams() : array
6666

6767
private static function hasRequiredConnectionParams() : bool
6868
{
69-
return isset(
70-
$GLOBALS['db_type'],
71-
$GLOBALS['db_username'],
72-
$GLOBALS['db_password'],
73-
$GLOBALS['db_host'],
74-
$GLOBALS['db_name'],
75-
$GLOBALS['db_port']
76-
)
77-
&& isset(
78-
$GLOBALS['tmpdb_type'],
79-
$GLOBALS['tmpdb_username'],
80-
$GLOBALS['tmpdb_password'],
81-
$GLOBALS['tmpdb_host'],
82-
$GLOBALS['tmpdb_port']
83-
);
69+
return isset($GLOBALS['db_driver']);
8470
}
8571

8672
private static function initializeDatabase() : void
@@ -154,53 +140,51 @@ private static function addDbEventSubscribers(Connection $conn) : void
154140
*/
155141
private static function getParamsForTemporaryConnection() : array
156142
{
157-
$connectionParams = [
158-
'driver' => $GLOBALS['tmpdb_type'],
159-
'user' => $GLOBALS['tmpdb_username'],
160-
'password' => $GLOBALS['tmpdb_password'],
161-
'host' => $GLOBALS['tmpdb_host'],
162-
'dbname' => null,
163-
'port' => $GLOBALS['tmpdb_port'],
164-
];
165-
166-
if (isset($GLOBALS['tmpdb_name'])) {
167-
$connectionParams['dbname'] = $GLOBALS['tmpdb_name'];
143+
if (isset($GLOBALS['tmpdb_driver'])) {
144+
self::mapConnectionParameters($GLOBALS, 'tmpdb_');
168145
}
169146

170-
if (isset($GLOBALS['tmpdb_server'])) {
171-
$connectionParams['server'] = $GLOBALS['tmpdb_server'];
172-
}
147+
$parameters = self::mapConnectionParameters($GLOBALS, 'db_');
148+
unset($parameters['dbname']);
173149

174-
if (isset($GLOBALS['tmpdb_unix_socket'])) {
175-
$connectionParams['unix_socket'] = $GLOBALS['tmpdb_unix_socket'];
176-
}
177-
178-
return $connectionParams;
150+
return $parameters;
179151
}
180152

181153
/**
182154
* @return mixed[]
183155
*/
184156
private static function getParamsForMainConnection() : array
185157
{
186-
$connectionParams = [
187-
'driver' => $GLOBALS['db_type'],
188-
'user' => $GLOBALS['db_username'],
189-
'password' => $GLOBALS['db_password'],
190-
'host' => $GLOBALS['db_host'],
191-
'dbname' => $GLOBALS['db_name'],
192-
'port' => $GLOBALS['db_port'],
193-
];
158+
return self::mapConnectionParameters($GLOBALS, 'db_');
159+
}
194160

195-
if (isset($GLOBALS['db_server'])) {
196-
$connectionParams['server'] = $GLOBALS['db_server'];
197-
}
161+
/**
162+
* @param array<string,mixed> $configuration
163+
*
164+
* @return array<string,mixed>
165+
*/
166+
private static function mapConnectionParameters(array $configuration, string $prefix) : array
167+
{
168+
$parameters = [];
169+
170+
foreach ([
171+
'driver',
172+
'user',
173+
'password',
174+
'host',
175+
'dbname',
176+
'port',
177+
'server',
178+
'unix_socket',
179+
] as $parameter) {
180+
if (! isset($configuration[$prefix . $parameter])) {
181+
continue;
182+
}
198183

199-
if (isset($GLOBALS['db_unix_socket'])) {
200-
$connectionParams['unix_socket'] = $GLOBALS['db_unix_socket'];
184+
$parameters[$parameter] = $configuration[$prefix . $parameter];
201185
}
202186

203-
return $connectionParams;
187+
return $parameters;
204188
}
205189

206190
public static function getTempConnection() : Connection

tests/appveyor/mssql.sql2008r2sp2.sqlsrv.appveyor.xml

+3-10
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,11 @@
1111
<php>
1212
<ini name="error_reporting" value="-1" />
1313

14-
<var name="db_type" value="sqlsrv"/>
14+
<var name="db_driver" value="sqlsrv"/>
1515
<var name="db_host" value="(local)\SQL2008R2SP2" />
16-
<var name="db_username" value="sa" />
16+
<var name="db_user" value="sa" />
1717
<var name="db_password" value="Password12!" />
18-
<var name="db_name" value="doctrine_tests" />
19-
<var name="db_port" value="1433" />
20-
21-
<var name="tmpdb_type" value="sqlsrv"/>
22-
<var name="tmpdb_host" value="(local)\SQL2008R2SP2" />
23-
<var name="tmpdb_username" value="sa" />
24-
<var name="tmpdb_password" value="Password12!" />
25-
<var name="tmpdb_port" value="1433" />
18+
<var name="db_dbname" value="doctrine_tests" />
2619
</php>
2720

2821
<testsuites>

tests/appveyor/mssql.sql2012sp1.sqlsrv.appveyor.xml

+3-10
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,11 @@
1111
<php>
1212
<ini name="error_reporting" value="-1" />
1313

14-
<var name="db_type" value="sqlsrv"/>
14+
<var name="db_driver" value="sqlsrv"/>
1515
<var name="db_host" value="(local)\SQL2012SP1" />
16-
<var name="db_username" value="sa" />
16+
<var name="db_user" value="sa" />
1717
<var name="db_password" value="Password12!" />
18-
<var name="db_name" value="doctrine_tests" />
19-
<var name="db_port" value="1433" />
20-
21-
<var name="tmpdb_type" value="sqlsrv"/>
22-
<var name="tmpdb_host" value="(local)\SQL2012SP1" />
23-
<var name="tmpdb_username" value="sa" />
24-
<var name="tmpdb_password" value="Password12!" />
25-
<var name="tmpdb_port" value="1433" />
18+
<var name="db_dbname" value="doctrine_tests" />
2619
</php>
2720

2821
<testsuites>

tests/appveyor/mssql.sql2017.pdo_sqlsrv.appveyor.xml

+3-10
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,11 @@
1111
<php>
1212
<ini name="error_reporting" value="-1" />
1313

14-
<var name="db_type" value="pdo_sqlsrv"/>
14+
<var name="db_driver" value="pdo_sqlsrv"/>
1515
<var name="db_host" value="(local)\SQL2017" />
16-
<var name="db_username" value="sa" />
16+
<var name="db_user" value="sa" />
1717
<var name="db_password" value="Password12!" />
18-
<var name="db_name" value="doctrine_tests" />
19-
<var name="db_port" value="1433"/>
20-
21-
<var name="tmpdb_type" value="pdo_sqlsrv"/>
22-
<var name="tmpdb_host" value="(local)\SQL2017" />
23-
<var name="tmpdb_username" value="sa" />
24-
<var name="tmpdb_password" value="Password12!" />
25-
<var name="tmpdb_port" value="1433"/>
18+
<var name="db_dbname" value="doctrine_tests" />
2619
</php>
2720

2821
<testsuites>

tests/appveyor/mssql.sql2017.sqlsrv.appveyor.xml

+3-10
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,11 @@
1111
<php>
1212
<ini name="error_reporting" value="-1" />
1313

14-
<var name="db_type" value="sqlsrv"/>
14+
<var name="db_driver" value="sqlsrv"/>
1515
<var name="db_host" value="(local)\SQL2017" />
16-
<var name="db_username" value="sa" />
16+
<var name="db_user" value="sa" />
1717
<var name="db_password" value="Password12!" />
18-
<var name="db_name" value="doctrine_tests" />
19-
<var name="db_port" value="1433" />
20-
21-
<var name="tmpdb_type" value="sqlsrv"/>
22-
<var name="tmpdb_host" value="(local)\SQL2017" />
23-
<var name="tmpdb_username" value="sa" />
24-
<var name="tmpdb_password" value="Password12!" />
25-
<var name="tmpdb_port" value="1433" />
18+
<var name="db_dbname" value="doctrine_tests" />
2619
</php>
2720

2821
<testsuites>

tests/continuousphp/oci8.phpunit.continuousphp.xml

+3-5
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,18 @@
1111
<php>
1212
<ini name="error_reporting" value="-1" />
1313

14-
<var name="db_type" value="oci8"/>
14+
<var name="db_driver" value="oci8"/>
1515
<var name="db_host" value="oracle-xe-11" />
16-
<var name="db_username" value="C##doctrine" />
16+
<var name="db_user" value="C##doctrine" />
1717
<var name="db_password" value="ORACLE" />
18-
<var name="db_name" value="XE" />
19-
<var name="db_port" value="1521"/>
18+
<var name="db_dbname" value="XE" />
2019
<var name="db_event_subscribers" value="Doctrine\DBAL\Event\Listeners\OracleSessionInit"/>
2120

2221
<var name="tmpdb_type" value="oci8"/>
2322
<var name="tmpdb_host" value="oracle-xe-11" />
2423
<var name="tmpdb_username" value="ORACLE" />
2524
<var name="tmpdb_password" value="ORACLE" />
2625
<var name="tmpdb_name" value="XE" />
27-
<var name="tmpdb_port" value="1521"/>
2826
</php>
2927

3028
<testsuites>

tests/continuousphp/pdo-oci.phpunit.xml

+3-5
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,18 @@
99
bootstrap="bootstrap.php"
1010
>
1111
<php>
12-
<var name="db_type" value="pdo_oci"/>
12+
<var name="db_driver" value="pdo_oci"/>
1313
<var name="db_host" value="oracle-xe-11" />
14-
<var name="db_username" value="C##doctrine" />
14+
<var name="db_user" value="C##doctrine" />
1515
<var name="db_password" value="ORACLE" />
16-
<var name="db_name" value="XE" />
17-
<var name="db_port" value="1521"/>
16+
<var name="db_dbname" value="XE" />
1817
<var name="db_event_subscribers" value="Doctrine\DBAL\Event\Listeners\OracleSessionInit"/>
1918

2019
<var name="tmpdb_type" value="pdo_oci"/>
2120
<var name="tmpdb_host" value="oracle-xe-11" />
2221
<var name="tmpdb_username" value="ORACLE" />
2322
<var name="tmpdb_password" value="ORACLE" />
2423
<var name="tmpdb_name" value="XE" />
25-
<var name="tmpdb_port" value="1521"/>
2624
</php>
2725

2826
<testsuites>

tests/travis/ibm_db2.travis.xml

+3-11
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,11 @@
1010
<php>
1111
<ini name="error_reporting" value="-1" />
1212

13-
<var name="db_type" value="ibm_db2"/>
13+
<var name="db_driver" value="ibm_db2"/>
1414
<var name="db_host" value="127.0.0.1"/>
15-
<var name="db_username" value="db2inst1"/>
15+
<var name="db_user" value="db2inst1"/>
1616
<var name="db_password" value="Doctrine2018"/>
17-
<var name="db_name" value="HOSTNAME=127.0.0.1;UID=db2inst1;PWD=Doctrine2018;DATABASE=doctrine"/>
18-
<var name="db_port" value="50000"/>
19-
20-
<var name="tmpdb_type" value="ibm_db2"/>
21-
<var name="tmpdb_host" value="127.0.0.1"/>
22-
<var name="tmpdb_username" value="db2inst1"/>
23-
<var name="tmpdb_password" value="Doctrine2018"/>
24-
<var name="tmpdb_name" value="HOSTNAME=127.0.0.1;UID=db2inst1;PWD=Doctrine2018;DATABASE=doctrine"/>
25-
<var name="tmpdb_port" value="50000"/>
17+
<var name="db_dbname" value="HOSTNAME=127.0.0.1;UID=db2inst1;PWD=Doctrine2018;DATABASE=doctrine"/>
2618
</php>
2719

2820
<testsuites>

tests/travis/mariadb.docker.travis.xml

+3-10
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,11 @@
1010
<php>
1111
<ini name="error_reporting" value="-1" />
1212

13-
<var name="db_type" value="pdo_mysql"/>
13+
<var name="db_driver" value="pdo_mysql"/>
1414
<var name="db_host" value="127.0.0.1" />
15-
<var name="db_username" value="root" />
16-
<var name="db_password" value="" />
17-
<var name="db_name" value="doctrine_tests" />
1815
<var name="db_port" value="33306"/>
19-
20-
<var name="tmpdb_type" value="pdo_mysql"/>
21-
<var name="tmpdb_host" value="127.0.0.1" />
22-
<var name="tmpdb_username" value="root" />
23-
<var name="tmpdb_password" value="" />
24-
<var name="tmpdb_port" value="33306"/>
16+
<var name="db_user" value="root" />
17+
<var name="db_dbname" value="doctrine_tests" />
2518
</php>
2619

2720
<testsuites>

tests/travis/mariadb.mysqli.docker.travis.xml

+3-10
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,11 @@
1010
<php>
1111
<ini name="error_reporting" value="-1" />
1212

13-
<var name="db_type" value="mysqli"/>
13+
<var name="db_driver" value="mysqli"/>
1414
<var name="db_host" value="127.0.0.1" />
15-
<var name="db_username" value="root" />
16-
<var name="db_password" value="" />
17-
<var name="db_name" value="doctrine_tests" />
1815
<var name="db_port" value="33306"/>
19-
20-
<var name="tmpdb_type" value="mysqli"/>
21-
<var name="tmpdb_host" value="127.0.0.1" />
22-
<var name="tmpdb_username" value="root" />
23-
<var name="tmpdb_password" value="" />
24-
<var name="tmpdb_port" value="33306"/>
16+
<var name="db_user" value="root" />
17+
<var name="db_dbname" value="doctrine_tests" />
2518
</php>
2619

2720
<testsuites>

0 commit comments

Comments
 (0)