Skip to content

Commit 121b7fe

Browse files
Merge pull request #376 from Evgenii-Gordeev-optimax/extend-fixture-event-with-object-manager
PostFixtureSetupEvent with ObjectManager dependency
2 parents 9b3a303 + 3ed403f commit 121b7fe

6 files changed

Lines changed: 43 additions & 10 deletions

File tree

src/Event/FixtureEvent.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@
1515

1616
use Symfony\Contracts\EventDispatcher\Event;
1717

18-
class FixtureEvent extends Event
18+
abstract class FixtureEvent extends Event
1919
{
2020
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
/*
6+
* This file is part of the Liip/TestFixturesBundle
7+
*
8+
* (c) Lukas Kahwe Smith <smith@pooteeweet.org>
9+
*
10+
* This source file is subject to the MIT license that is bundled
11+
* with this source code in the file LICENSE.
12+
*/
13+
14+
namespace Liip\TestFixturesBundle\Event;
15+
16+
use Doctrine\Persistence\ObjectManager;
17+
18+
class PostFixtureSetupEvent extends FixtureEvent
19+
{
20+
private ObjectManager $manager;
21+
22+
public function __construct(
23+
ObjectManager $manager,
24+
) {
25+
$this->manager = $manager;
26+
}
27+
28+
public function getManager(): ObjectManager
29+
{
30+
return $this->manager;
31+
}
32+
}

src/LiipTestFixturesEvents.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313

1414
namespace Liip\TestFixturesBundle;
1515

16-
use Liip\TestFixturesBundle\Event\FixtureEvent;
1716
use Liip\TestFixturesBundle\Event\PostFixtureBackupRestoreEvent;
17+
use Liip\TestFixturesBundle\Event\PostFixtureSetupEvent;
1818
use Liip\TestFixturesBundle\Event\PreFixtureBackupRestoreEvent;
1919
use Liip\TestFixturesBundle\Event\ReferenceSaveEvent;
2020

@@ -23,7 +23,7 @@ final class LiipTestFixturesEvents
2323
/** @see PreFixtureBackupRestoreEvent */
2424
public const PRE_FIXTURE_BACKUP_RESTORE = 'liip_test_fixtures.pre_fixture_backup_restore';
2525

26-
/** @see FixtureEvent */
26+
/** @see PostFixtureSetupEvent */
2727
public const POST_FIXTURE_SETUP = 'liip_test_fixtures.post_fixture_setup';
2828

2929
/** @see PostFixtureBackupRestoreEvent */

src/Services/DatabaseTools/ORMDatabaseTool.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
use Doctrine\ORM\Configuration;
2323
use Doctrine\ORM\EntityManager;
2424
use Doctrine\ORM\Tools\SchemaTool;
25-
use Liip\TestFixturesBundle\Event\FixtureEvent;
2625
use Liip\TestFixturesBundle\Event\PostFixtureBackupRestoreEvent;
26+
use Liip\TestFixturesBundle\Event\PostFixtureSetupEvent;
2727
use Liip\TestFixturesBundle\Event\PreFixtureBackupRestoreEvent;
2828
use Liip\TestFixturesBundle\Event\ReferenceSaveEvent;
2929
use Liip\TestFixturesBundle\LiipTestFixturesEvents;
@@ -122,7 +122,7 @@ public function loadFixtures(array $classNames = [], bool $append = false): Abst
122122
}
123123
}
124124

125-
$event = new FixtureEvent();
125+
$event = new PostFixtureSetupEvent($this->om);
126126
$this->eventDispatcher->dispatch($event, LiipTestFixturesEvents::POST_FIXTURE_SETUP);
127127

128128
$executor = $this->getExecutor($this->getPurger());

src/Services/DatabaseTools/ORMSqliteDatabaseTool.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
use Doctrine\DBAL\Platforms\SQLitePlatform;
1919
use Doctrine\ORM\Configuration;
2020
use Doctrine\ORM\Tools\SchemaTool;
21-
use Liip\TestFixturesBundle\Event\FixtureEvent;
2221
use Liip\TestFixturesBundle\Event\PostFixtureBackupRestoreEvent;
22+
use Liip\TestFixturesBundle\Event\PostFixtureSetupEvent;
2323
use Liip\TestFixturesBundle\Event\PreFixtureBackupRestoreEvent;
2424
use Liip\TestFixturesBundle\Event\ReferenceSaveEvent;
2525
use Liip\TestFixturesBundle\LiipTestFixturesEvents;
@@ -90,7 +90,7 @@ public function loadFixtures(array $classNames = [], bool $append = false): Abst
9090
}
9191
}
9292

93-
$event = new FixtureEvent();
93+
$event = new PostFixtureSetupEvent($this->om);
9494
$this->eventDispatcher->dispatch($event, LiipTestFixturesEvents::POST_FIXTURE_SETUP);
9595

9696
$executor = $this->getExecutor($this->getPurger());

tests/AppConfigEvents/EventListener/FixturesSubscriber.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313

1414
namespace Liip\Acme\Tests\AppConfigEvents\EventListener;
1515

16-
use Liip\TestFixturesBundle\Event\FixtureEvent;
1716
use Liip\TestFixturesBundle\Event\PostFixtureBackupRestoreEvent;
17+
use Liip\TestFixturesBundle\Event\PostFixtureSetupEvent;
1818
use Liip\TestFixturesBundle\Event\PreFixtureBackupRestoreEvent;
1919
use Liip\TestFixturesBundle\Event\ReferenceSaveEvent;
2020
use Liip\TestFixturesBundle\LiipTestFixturesEvents;
@@ -42,9 +42,10 @@ public function preFixtureBackupRestore(PreFixtureBackupRestoreEvent $preFixture
4242
// your code
4343
}
4444

45-
public function postFixtureSetup(FixtureEvent $fixture): void
45+
public function postFixtureSetup(PostFixtureSetupEvent $postFixtureSetupEvent): void
4646
{
47-
// There are no parameters
47+
$manager = $postFixtureSetupEvent->getManager();
48+
4849
// your code
4950
}
5051

0 commit comments

Comments
 (0)