Skip to content

Commit 5387922

Browse files
committed
minor #850 [tests][doctrine] handle deprecated override_url (jrushlow)
This PR was merged into the 1.0-dev branch. Discussion ---------- [tests][doctrine] handle deprecated override_url silence deprecation's triggered in `EntityRegenerator` tests for the newly added `override_url` feature in DoctrineBundle 2.3 Commits ------- dd4ea75 handle deprecated override_url
2 parents a395a85 + dd4ea75 commit 5387922

File tree

1 file changed

+41
-8
lines changed

1 file changed

+41
-8
lines changed

tests/Doctrine/EntityRegeneratorTest.php

Lines changed: 41 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
namespace Symfony\Bundle\MakerBundle\Tests\Doctrine;
1313

14+
use Doctrine\Bundle\DoctrineBundle\DependencyInjection\DoctrineExtension;
1415
use Doctrine\Bundle\DoctrineBundle\DoctrineBundle;
1516
use Doctrine\Persistence\ManagerRegistry;
1617
use PHPUnit\Framework\TestCase;
@@ -156,6 +157,7 @@ private function createAllButTraitsIterator(string $sourceDir): \Iterator
156157
class TestEntityRegeneratorKernel extends Kernel
157158
{
158159
use MicroKernelTrait;
160+
use OverrideUrlTraitFixture;
159161

160162
public function registerBundles()
161163
{
@@ -178,11 +180,17 @@ protected function configureContainer(ContainerBuilder $c, LoaderInterface $load
178180
],
179181
]);
180182

183+
$dbal = [
184+
'driver' => 'pdo_sqlite',
185+
'url' => 'sqlite:///fake',
186+
];
187+
188+
if ($this->canOverrideUrl($c)) {
189+
$dbal['override_url'] = true;
190+
}
191+
181192
$c->prependExtensionConfig('doctrine', [
182-
'dbal' => [
183-
'driver' => 'pdo_sqlite',
184-
'url' => 'sqlite:///fake',
185-
],
193+
'dbal' => $dbal,
186194
'orm' => [
187195
'mappings' => [
188196
'EntityRegenerator' => [
@@ -211,6 +219,7 @@ public function getRootDir()
211219
class TestXmlEntityRegeneratorKernel extends Kernel
212220
{
213221
use MicroKernelTrait;
222+
use OverrideUrlTraitFixture;
214223

215224
public function registerBundles()
216225
{
@@ -233,11 +242,17 @@ protected function configureContainer(ContainerBuilder $c, LoaderInterface $load
233242
],
234243
]);
235244

245+
$dbal = [
246+
'driver' => 'pdo_sqlite',
247+
'url' => 'sqlite:///fake',
248+
];
249+
250+
if ($this->canOverrideUrl($c)) {
251+
$dbal['override_url'] = true;
252+
}
253+
236254
$c->prependExtensionConfig('doctrine', [
237-
'dbal' => [
238-
'driver' => 'pdo_sqlite',
239-
'url' => 'sqlite:///fake',
240-
],
255+
'dbal' => $dbal,
241256
'orm' => [
242257
'auto_generate_proxy_classes' => true,
243258
'mappings' => [
@@ -271,3 +286,21 @@ public function accept()
271286
return !\in_array($this->current()->getFilename(), []);
272287
}
273288
}
289+
290+
trait OverrideUrlTraitFixture
291+
{
292+
/**
293+
* Quick and dirty way to check if override_url is required since doctrine-bundle 2.3.
294+
*/
295+
public function canOverrideUrl(ContainerBuilder $builder): bool
296+
{
297+
/** @var DoctrineExtension $ext */
298+
$ext = $builder->getExtension('doctrine');
299+
$method = new \ReflectionMethod(DoctrineExtension::class, 'getConnectionOptions');
300+
$method->setAccessible(true);
301+
302+
$configOptions = $method->invoke($ext, ['override_url' => 'string', 'shards' => [], 'replicas' => [], 'slaves' => []]);
303+
304+
return \array_key_exists('connection_override_options', $configOptions);
305+
}
306+
}

0 commit comments

Comments
 (0)