-
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathphpunit-bootstrap.php
101 lines (77 loc) · 3.68 KB
/
phpunit-bootstrap.php
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php
use Brick\Geo\Doctrine\Types;
use Doctrine\DBAL\Types\Type;
(function() {
/** @var \Composer\Autoload\ClassLoader $classLoader */
$classLoader = require 'vendor/autoload.php';
// Add namespace for doctrine base tests
$classLoader->addPsr4('Doctrine\\Tests\\', [
__DIR__ . '/vendor/doctrine/orm/tests/Doctrine/Tests',
__DIR__ . '/vendor/doctrine/dbal/tests/Doctrine/Tests'
]);
$classLoader->loadClass('Doctrine\Tests\DbalFunctionalTestCase');
$classLoader->loadClass('Doctrine\Tests\DBAL\Mocks\MockPlatform');
Type::addType('Geometry', Types\GeometryType::class);
Type::addType('LineString', Types\LineStringType::class);
Type::addType('MultiLineString', Types\MultiLineStringType::class);
Type::addType('MultiPoint', Types\MultiPointType::class);
Type::addType('MultiPolygon', Types\MultiPolygonType::class);
Type::addType('Point', Types\PointType::class);
Type::addType('Polygon', Types\PolygonType::class);
$driver = getenv('DRIVER');
if ($driver === false) {
echo 'Please set the database driver to use:' . PHP_EOL;
echo 'DRIVER={driver} vendor/bin/phpunit' . PHP_EOL;
echo 'Available drivers: PDO_MYSQL, PDO_PGSQL' . PHP_EOL;
exit(1);
} else {
switch ($driver) {
case 'PDO_MYSQL':
echo 'Using PDO_MYSQL driver' . PHP_EOL;
$pdo = new PDO('mysql:host=127.0.0.1;port=3306', 'root', '');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->exec('DROP DATABASE IF EXISTS geo_tests');
$pdo->exec('CREATE DATABASE geo_tests');
$statement = $pdo->query('SELECT VERSION()');
$version = $statement->fetchColumn();
echo 'MySQL version: ' . $version . PHP_EOL;
$GLOBALS['db_type'] = 'pdo_mysql';
$GLOBALS['db_host'] = '127.0.0.1';
$GLOBALS['db_port'] = 3306;
$GLOBALS['db_username'] = 'root';
$GLOBALS['db_password'] = '';
$GLOBALS['db_name'] = 'geo_tests';
// doctrine/dbal >= 2.13.0
$GLOBALS['db_driver'] = 'pdo_mysql';
$GLOBALS['db_user'] = 'root';
$GLOBALS['db_dbname'] = 'geo_tests';
break;
case 'PDO_PGSQL':
echo 'Using PDO_PGSQL driver' . PHP_EOL;
$pdo = new PDO('pgsql:host=localhost', 'postgres', 'postgres');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->exec('DROP DATABASE IF EXISTS geo_tests');
$pdo->exec('CREATE DATABASE geo_tests');
$statement = $pdo->query('SELECT version()');
$version = $statement->fetchColumn();
echo 'PostgreSQL version: ' . $version . PHP_EOL;
$statement = $pdo->query('SELECT PostGIS_Version()');
$version = $statement->fetchColumn();
echo 'PostGIS version: ' . $version . PHP_EOL;
$GLOBALS['db_type'] = 'pdo_pgsql';
$GLOBALS['db_host'] = 'localhost';
$GLOBALS['db_port'] = 5432;
$GLOBALS['db_username'] = 'postgres';
$GLOBALS['db_password'] = 'postgres';
$GLOBALS['db_name'] = 'geo_tests';
// doctrine/dbal >= 2.13.0
$GLOBALS['db_driver'] = 'pdo_pgsql';
$GLOBALS['db_user'] = 'postgres';
$GLOBALS['db_dbname'] = 'geo_tests';
break;
default:
echo 'Unknown driver: ' . $driver . PHP_EOL;
exit(1);
}
}
})();