diff --git a/src/Bridge/Doctrine/Persister/ManagerRegistryPersister.php b/src/Bridge/Doctrine/Persister/ManagerRegistryPersister.php new file mode 100644 index 00000000..1419c542 --- /dev/null +++ b/src/Bridge/Doctrine/Persister/ManagerRegistryPersister.php @@ -0,0 +1,85 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Fidry\AliceDataFixtures\Bridge\Doctrine\Persister; + +use Doctrine\Persistence\ManagerRegistry; +use Fidry\AliceDataFixtures\Persistence\PersisterInterface; +use function get_class; +use function implode; +use InvalidArgumentException; +use Nelmio\Alice\IsAServiceTrait; +use function sprintf; + +/** + * @final + */ +class ManagerRegistryPersister implements PersisterInterface +{ + use IsAServiceTrait; + + private $registry; + + /** + * @var PersisterInterface[] + */ + private $persisters = []; + + public function __construct(ManagerRegistry $registry) + { + $this->registry = $registry; + + $managers = $registry->getManagers(); + + foreach ($managers as $manager) { + $this->persisters[spl_object_hash($manager)] = new ObjectManagerPersister($manager); + } + } + + /** + * {@inheritdoc} + */ + public function persist($object) + { + $persister = $this->getPersisterForClass(get_class($object)); + + $persister->persist($object); + } + + /** + * {@inheritdoc} + */ + public function flush() + { + foreach ($this->persisters as $persister) { + $persister->flush(); + } + } + + private function getPersisterForClass(string $class): PersisterInterface + { + $manager = $this->registry->getManagerForClass($class); + + if (null === $manager) { + throw new InvalidArgumentException( + sprintf( + 'Could not find a manager for the class "%s". Known managers: "%s"', + $class, + implode('", "', $this->registry->getManagerNames()) + ) + ); + } + + return $this->persisters[spl_object_hash($manager)]; + } +} diff --git a/src/Bridge/Doctrine/Persister/ObjectManagerPersister.php b/src/Bridge/Doctrine/Persister/ObjectManagerPersister.php index 79cc7d24..e86088f0 100644 --- a/src/Bridge/Doctrine/Persister/ObjectManagerPersister.php +++ b/src/Bridge/Doctrine/Persister/ObjectManagerPersister.php @@ -24,7 +24,7 @@ use Fidry\AliceDataFixtures\Persistence\PersisterInterface; use Nelmio\Alice\IsAServiceTrait; -class ObjectManagerPersister implements PersisterInterface +/* final */ class ObjectManagerPersister implements PersisterInterface { use IsAServiceTrait; @@ -46,7 +46,7 @@ public function __construct(ObjectManager $manager) } /** - * @inheritdoc + * {@inheritdoc} */ public function persist($object) { @@ -85,7 +85,7 @@ public function persist($object) } /** - * @inheritdoc + * {@inheritdoc} */ public function flush() { @@ -117,7 +117,7 @@ private function getPersistableClasses(ObjectManager $manager): array return $persistableClasses; } - private function saveMetadataToRestore(ClassMetadata $metadata): void + private function saveMetadataToRestore(ORMClassMetadataInfo $metadata): void { if (!isset($this->metadataToRestore[$metadata->getName()])) { $this->metadataToRestore[$metadata->getName()] = $metadata; diff --git a/src/Bridge/Doctrine/Purger/ManagerRegistryPurger.php b/src/Bridge/Doctrine/Purger/ManagerRegistryPurger.php new file mode 100644 index 00000000..698ab2e1 --- /dev/null +++ b/src/Bridge/Doctrine/Purger/ManagerRegistryPurger.php @@ -0,0 +1,73 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Fidry\AliceDataFixtures\Bridge\Doctrine\Purger; + +use function array_map; +use Doctrine\Persistence\ManagerRegistry; +use Doctrine\Persistence\ObjectManager; +use Fidry\AliceDataFixtures\Persistence\PurgeMode; +use Fidry\AliceDataFixtures\Persistence\PurgerFactoryInterface; +use Fidry\AliceDataFixtures\Persistence\PurgerInterface; +use InvalidArgumentException; +use Nelmio\Alice\IsAServiceTrait; + +/** + * @final + */ +/* final */ class ManagerRegistryPurger implements PurgerInterface, PurgerFactoryInterface +{ + use IsAServiceTrait; + + private $registry; + private $purgeMode; + + /** + * @var PurgerInterface[] + */ + private $purgers = []; + + public function __construct(ManagerRegistry $registry, PurgeMode $purgeMode = null) + { + $this->registry = $registry; + + $this->purgers = array_map( + function (ObjectManager $manager) use ($purgeMode): PurgerInterface { + return new ObjectManagerPurger($manager, $purgeMode); + }, + $registry->getManagers() + ); + } + + /** + * @inheritdoc + */ + public function create(PurgeMode $mode, PurgerInterface $purger = null): PurgerInterface + { + if (null !== $purger) { + throw new InvalidArgumentException('Cannot create a new purger from an existing one.'); + } + + return new self($this->registry, $mode); + } + + /** + * @inheritdoc + */ + public function purge(): void + { + foreach ($this->purgers as $purger) { + $purger->purge(); + } + } +} diff --git a/src/Bridge/Doctrine/Purger/ObjectManagerPurger.php b/src/Bridge/Doctrine/Purger/ObjectManagerPurger.php new file mode 100644 index 00000000..7c6ea2b2 --- /dev/null +++ b/src/Bridge/Doctrine/Purger/ObjectManagerPurger.php @@ -0,0 +1,144 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Fidry\AliceDataFixtures\Bridge\Doctrine\Purger; + +use Doctrine\Common\DataFixtures\Purger\MongoDBPurger as DoctrineMongoDBPurger; +use Doctrine\Common\DataFixtures\Purger\ORMPurger as DoctrineOrmPurger; +use Doctrine\Common\DataFixtures\Purger\PHPCRPurger as DoctrinePhpCrPurger; +use Doctrine\Common\DataFixtures\Purger\PurgerInterface as DoctrinePurgerInterface; +use Doctrine\DBAL\Driver\AbstractMySQLDriver; +use Doctrine\ODM\MongoDB\DocumentManager as DoctrineMongoDocumentManager; +use Doctrine\ODM\PHPCR\DocumentManager as DoctrinePhpCrDocumentManager; +use Doctrine\ORM\EntityManagerInterface; +use Doctrine\Persistence\ObjectManager; +use Fidry\AliceDataFixtures\Persistence\PurgeMode; +use Fidry\AliceDataFixtures\Persistence\PurgerFactoryInterface; +use Fidry\AliceDataFixtures\Persistence\PurgerInterface; +use InvalidArgumentException; +use Nelmio\Alice\IsAServiceTrait; + +/** + * Bridge for Doctrine purger. + * + * @author Vincent CHALAMON + * @final + */ +/* final */ class ObjectManagerPurger implements PurgerInterface, PurgerFactoryInterface +{ + use IsAServiceTrait; + + private $manager; + private $purgeMode; + private $purger; + + public function __construct(ObjectManager $manager, PurgeMode $purgeMode = null) + { + $this->manager = $manager; + $this->purgeMode = $purgeMode; + + $this->purger = static::createPurger($manager, $purgeMode); + } + + /** + * @inheritdoc + */ + public function create(PurgeMode $mode, PurgerInterface $purger = null): PurgerInterface + { + if (null === $purger) { + return new self($this->manager, $mode); + } + + if ($purger instanceof DoctrinePurgerInterface) { + $manager = $purger->getObjectManager(); + } elseif ($purger instanceof self) { + $manager = $purger->manager; + } else { + throw new InvalidArgumentException( + sprintf( + 'Expected purger to be either and instance of "%s" or "%s". Got "%s".', + DoctrinePurgerInterface::class, + __CLASS__, + get_class($purger) + ) + ); + } + + if (null === $manager) { + throw new InvalidArgumentException( + sprintf( + 'Expected purger "%s" to have an object manager, got "null" instead.', + get_class($purger) + ) + ); + } + + return new self($manager, $mode); + } + + /** + * @inheritdoc + */ + public function purge(): void + { + // Because MySQL rocks, you got to disable foreign key checks when doing a TRUNCATE/DELETE unlike in for example + // PostgreSQL. This ideally should be done in the Purger of doctrine/data-fixtures but meanwhile we are doing + // it here. + // See the progress in https://github.com/doctrine/data-fixtures/pull/272 + $disableFkChecks = ( + $this->purger instanceof DoctrineOrmPurger + && in_array($this->purgeMode->getValue(), [PurgeMode::createDeleteMode()->getValue(), PurgeMode::createTruncateMode()->getValue()]) + && $this->purger->getObjectManager()->getConnection()->getDriver() instanceof AbstractMySQLDriver + ); + + if ($disableFkChecks) { + $connection = $this->purger->getObjectManager()->getConnection(); + + $connection->exec('SET FOREIGN_KEY_CHECKS = 0;'); + } + + $this->purger->purge(); + + if ($disableFkChecks && isset($connection)) { + $connection->exec('SET FOREIGN_KEY_CHECKS = 1;'); + } + } + + private static function createPurger(ObjectManager $manager, ?PurgeMode $purgeMode): DoctrinePurgerInterface + { + if ($manager instanceof EntityManagerInterface) { + $purger = new DoctrineOrmPurger($manager); + + if (null !== $purgeMode) { + $purger->setPurgeMode($purgeMode->getValue()); + } + + return $purger; + } + + if ($manager instanceof DoctrinePhpCrDocumentManager) { + return new DoctrinePhpCrPurger($manager); + } + + if ($manager instanceof DoctrineMongoDocumentManager) { + return new DoctrineMongoDBPurger($manager); + } + + throw new InvalidArgumentException( + sprintf( + 'Cannot create a purger for ObjectManager of class %s', + get_class($manager) + ) + ); + } +} diff --git a/src/Bridge/Doctrine/Purger/Purger.php b/src/Bridge/Doctrine/Purger/Purger.php index 05d61b5b..d3a1eebe 100644 --- a/src/Bridge/Doctrine/Purger/Purger.php +++ b/src/Bridge/Doctrine/Purger/Purger.php @@ -13,132 +13,31 @@ namespace Fidry\AliceDataFixtures\Bridge\Doctrine\Purger; -use Doctrine\Common\DataFixtures\Purger\MongoDBPurger as DoctrineMongoDBPurger; -use Doctrine\Common\DataFixtures\Purger\ORMPurger as DoctrineOrmPurger; -use Doctrine\Common\DataFixtures\Purger\PHPCRPurger as DoctrinePhpCrPurger; -use Doctrine\Common\DataFixtures\Purger\PurgerInterface as DoctrinePurgerInterface; -use Doctrine\DBAL\Driver\AbstractMySQLDriver; -use Doctrine\ODM\MongoDB\DocumentManager as DoctrineMongoDocumentManager; -use Doctrine\ODM\PHPCR\DocumentManager as DoctrinePhpCrDocumentManager; -use Doctrine\ORM\EntityManagerInterface; use Doctrine\Persistence\ObjectManager; +use const E_USER_DEPRECATED; use Fidry\AliceDataFixtures\Persistence\PurgeMode; -use Fidry\AliceDataFixtures\Persistence\PurgerFactoryInterface; -use Fidry\AliceDataFixtures\Persistence\PurgerInterface; -use InvalidArgumentException; -use Nelmio\Alice\IsAServiceTrait; +use function trigger_error; /** - * Bridge for Doctrine purger. - * - * @author Vincent CHALAMON - * @final + * @deprecated Use ObjectManagerPurger instead + * @see ObjectManagerPurger */ -/* final */ class Purger implements PurgerInterface, PurgerFactoryInterface +/* final */ class Purger extends ObjectManagerPurger { - use IsAServiceTrait; - - private $manager; - private $purgeMode; - private $purger; - - public function __construct(ObjectManager $manager, PurgeMode $purgeMode = null) - { - $this->manager = $manager; - $this->purgeMode = $purgeMode; - - $this->purger = static::createPurger($manager, $purgeMode); - } - - /** - * @inheritdoc - */ - public function create(PurgeMode $mode, PurgerInterface $purger = null): PurgerInterface - { - if (null === $purger) { - return new self($this->manager, $mode); - } - - if ($purger instanceof DoctrinePurgerInterface) { - $manager = $purger->getObjectManager(); - } elseif ($purger instanceof self) { - $manager = $purger->manager; - } else { - throw new InvalidArgumentException( - sprintf( - 'Expected purger to be either and instance of "%s" or "%s". Got "%s".', - DoctrinePurgerInterface::class, - __CLASS__, - get_class($purger) - ) - ); - } - - if (null === $manager) { - throw new InvalidArgumentException( - sprintf( - 'Expected purger "%s" to have an object manager, got "null" instead.', - get_class($purger) - ) - ); - } - - return new self($manager, $mode); - } - /** * @inheritdoc */ - public function purge() - { - // Because MySQL rocks, you got to disable foreign key checks when doing a TRUNCATE/DELETE unlike in for example - // PostgreSQL. This ideally should be done in the Purger of doctrine/data-fixtures but meanwhile we are doing - // it here. - // See the progress in https://github.com/doctrine/data-fixtures/pull/272 - $disableFkChecks = ( - $this->purger instanceof DoctrineOrmPurger - && in_array($this->purgeMode->getValue(), [PurgeMode::createDeleteMode()->getValue(), PurgeMode::createTruncateMode()->getValue()]) - && $this->purger->getObjectManager()->getConnection()->getDriver() instanceof AbstractMySQLDriver - ); - - if ($disableFkChecks) { - $connection = $this->purger->getObjectManager()->getConnection(); - - $connection->exec('SET FOREIGN_KEY_CHECKS = 0;'); - } - - $this->purger->purge(); - - if ($disableFkChecks && isset($connection)) { - $connection->exec('SET FOREIGN_KEY_CHECKS = 1;'); - } - } - - private static function createPurger(ObjectManager $manager, ?PurgeMode $purgeMode): DoctrinePurgerInterface + public function __construct(ObjectManager $manager, PurgeMode $purgeMode = null) { - if ($manager instanceof EntityManagerInterface) { - $purger = new DoctrineOrmPurger($manager); - - if (null !== $purgeMode) { - $purger->setPurgeMode($purgeMode->getValue()); - } - - return $purger; - } - - if ($manager instanceof DoctrinePhpCrDocumentManager) { - return new DoctrinePhpCrPurger($manager); - } - - if ($manager instanceof DoctrineMongoDocumentManager) { - return new DoctrineMongoDBPurger($manager); - } - - throw new InvalidArgumentException( + @trigger_error( sprintf( - 'Cannot create a purger for ObjectManager of class %s', - get_class($manager) - ) + '"%s" has been deprecated since v1.3.0. Use "%s" instead.', + self::class, + ObjectManagerPurger::class + ), + E_USER_DEPRECATED ); + + parent::__construct($manager, $purgeMode); } } diff --git a/src/Bridge/Symfony/Resources/config/doctrine_mongodb_odm.xml b/src/Bridge/Symfony/Resources/config/doctrine_mongodb_odm.xml index 3da2b589..47ee2afe 100644 --- a/src/Bridge/Symfony/Resources/config/doctrine_mongodb_odm.xml +++ b/src/Bridge/Symfony/Resources/config/doctrine_mongodb_odm.xml @@ -49,9 +49,9 @@ public="true" /> - + - + diff --git a/src/Bridge/Symfony/Resources/config/doctrine_orm.xml b/src/Bridge/Symfony/Resources/config/doctrine_orm.xml index a761ddaf..83030af4 100644 --- a/src/Bridge/Symfony/Resources/config/doctrine_orm.xml +++ b/src/Bridge/Symfony/Resources/config/doctrine_orm.xml @@ -49,9 +49,9 @@ public="true" /> - + - + diff --git a/src/Bridge/Symfony/Resources/config/doctrine_phpcr_odm.xml b/src/Bridge/Symfony/Resources/config/doctrine_phpcr_odm.xml index c16e52b8..964cd44a 100644 --- a/src/Bridge/Symfony/Resources/config/doctrine_phpcr_odm.xml +++ b/src/Bridge/Symfony/Resources/config/doctrine_phpcr_odm.xml @@ -49,15 +49,15 @@ public="true" /> - + - + @@ -70,9 +70,9 @@ public="true" /> - + diff --git a/src/Persistence/PurgerInterface.php b/src/Persistence/PurgerInterface.php index bfe67204..c286633b 100644 --- a/src/Persistence/PurgerInterface.php +++ b/src/Persistence/PurgerInterface.php @@ -34,6 +34,8 @@ interface PurgerInterface /** * Purges the database before loading. Depending of the implementation, the purge may truncate the database or * remove only a part of the database data. + * + * @return void The typehint is gonna be enforced from 2.0.0 onwards */ public function purge(); } diff --git a/tests/Bridge/Doctrine/Persister/ObjectManagerPersisterTest.php b/tests/Bridge/Doctrine/Persister/ObjectManagerPersisterTest.php index f572fe0a..4d336ca1 100644 --- a/tests/Bridge/Doctrine/Persister/ObjectManagerPersisterTest.php +++ b/tests/Bridge/Doctrine/Persister/ObjectManagerPersisterTest.php @@ -17,6 +17,7 @@ use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\ORMException; use Doctrine\ORM\ORMInvalidArgumentException; +use Doctrine\Persistence\ManagerRegistry; use Fidry\AliceDataFixtures\Bridge\Doctrine\Entity\Dummy; use Fidry\AliceDataFixtures\Bridge\Doctrine\Entity\DummyEmbeddable; use Fidry\AliceDataFixtures\Bridge\Doctrine\Entity\DummySubClass; @@ -27,6 +28,7 @@ use Fidry\AliceDataFixtures\Bridge\Doctrine\IdGenerator; use Fidry\AliceDataFixtures\Exception\ObjectGeneratorPersisterException; use Fidry\AliceDataFixtures\Persistence\PersisterInterface; +use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; use ReflectionClass; @@ -50,13 +52,23 @@ class ObjectManagerPersisterTest extends TestCase */ private $purger; + /** + * @var ManagerRegistry|MockObject + */ + private $managerRegistry; + /** * @inheritdoc */ public function setUp(): void { $this->entityManager = $GLOBALS['entity_manager']; - $this->persister = new ObjectManagerPersister($this->entityManager); + + $this->managerRegistry = $this->createMock(ManagerRegistry::class); + $this->managerRegistry->method('getManagerForClass')->willReturn($this->entityManager); + $this->managerRegistry->method('getManagers')->willReturn([$this->entityManager]); + + $this->persister = new ManagerRegistryPersister($this->managerRegistry); $this->purger = new ORMPurger($this->entityManager); } @@ -65,17 +77,20 @@ public function setUp(): void */ public function tearDown(): void { + $this->entityManager->getUnitOfWork()->clear(); $this->purger->purge(); } public function testIsAPersister() { $this->assertTrue(is_a(ObjectManagerPersister::class, PersisterInterface::class, true)); + $this->assertTrue(is_a(ManagerRegistryPersister::class, PersisterInterface::class, true)); } public function testIsNotClonable() { $this->assertFalse((new ReflectionClass(ObjectManagerPersister::class))->isCloneable()); + $this->assertFalse((new ReflectionClass(ManagerRegistryPersister::class))->isCloneable()); } /** diff --git a/tests/Bridge/Doctrine/Purger/PurgerTest.php b/tests/Bridge/Doctrine/Purger/PurgerTest.php index 7a14f793..403c68c6 100644 --- a/tests/Bridge/Doctrine/Purger/PurgerTest.php +++ b/tests/Bridge/Doctrine/Purger/PurgerTest.php @@ -14,8 +14,8 @@ namespace Fidry\AliceDataFixtures\Bridge\Doctrine\Purger; use Doctrine\Common\DataFixtures\Purger\ORMPurger as DoctrineOrmPurger; -use Doctrine\DBAL\Driver\AbstractMySQLDriver; use Doctrine\DBAL\Connection; +use Doctrine\DBAL\Driver\AbstractMySQLDriver; use Doctrine\ORM\EntityManager; use Fidry\AliceDataFixtures\Bridge\Doctrine\Entity\Dummy; use Fidry\AliceDataFixtures\Bridge\Doctrine\ORM\FakeEntityManager; @@ -52,7 +52,7 @@ public function testCreatesADoctrineOrmPurgerWithTheAppropriateManagerAndPurgeMo { $manager = new FakeEntityManager(); $purgeMode = PurgeMode::createTruncateMode(); - $purger = new Purger($manager, $purgeMode); + $purger = new ObjectManagerPurger($manager, $purgeMode); $decoratedPurgerReflection = (new \ReflectionObject($purger))->getProperty('purger'); $decoratedPurgerReflection->setAccessible(true); @@ -79,7 +79,7 @@ public function testDisableFKChecksOnDeleteIsPerformed() $purgerORM->purge()->shouldBeCalled(); $purgeMode = PurgeMode::createDeleteMode(); - $purger = new Purger($manager->reveal(), $purgeMode); + $purger = new ObjectManagerPurger($manager->reveal(), $purgeMode); $decoratedPurgerReflection = (new \ReflectionObject($purger))->getProperty('purger'); $decoratedPurgerReflection->setAccessible(true); @@ -99,7 +99,7 @@ public function testEmptyDatabase() $this->assertEquals(1, count($manager->getRepository(Dummy::class)->findAll())); - $purger = new Purger($manager, PurgeMode::createDeleteMode()); + $purger = new ObjectManagerPurger($manager, PurgeMode::createDeleteMode()); $purger->purge(); $this->assertEquals(0, count($manager->getRepository(Dummy::class)->findAll())); diff --git a/tests/Bridge/DoctrineMongoDB/Purger/PurgerTest.php b/tests/Bridge/DoctrineMongoDB/Purger/PurgerTest.php index f6898b3b..e4c8a0c5 100644 --- a/tests/Bridge/DoctrineMongoDB/Purger/PurgerTest.php +++ b/tests/Bridge/DoctrineMongoDB/Purger/PurgerTest.php @@ -16,7 +16,7 @@ use Doctrine\Common\DataFixtures\Purger\MongoDBPurger; use Doctrine\ODM\MongoDB\DocumentManager; use Fidry\AliceDataFixtures\Bridge\Doctrine\MongoDocument\Dummy; -use Fidry\AliceDataFixtures\Bridge\Doctrine\Purger\Purger; +use Fidry\AliceDataFixtures\Bridge\Doctrine\Purger\ObjectManagerPurger; use PHPUnit\Framework\TestCase; use Prophecy\PhpUnit\ProphecyTrait; @@ -32,7 +32,7 @@ class PurgerTest extends TestCase public function testCreatesADoctrineOdmPurgerWithTheAppropriateManager() { $manager = $this->prophesize(DocumentManager::class)->reveal(); - $purger = new Purger($manager); + $purger = new ObjectManagerPurger($manager); $decoratedPurgerReflection = (new \ReflectionObject($purger))->getProperty('purger'); $decoratedPurgerReflection->setAccessible(true); @@ -53,7 +53,7 @@ public function testEmptyDatabase() $this->assertEquals(1, count($manager->getRepository(Dummy::class)->findAll())); - $purger = new Purger($manager); + $purger = new ObjectManagerPurger($manager); $purger->purge(); $this->assertEquals(0, count($manager->getRepository(Dummy::class)->findAll())); diff --git a/tests/Bridge/DoctrinePhpCr/Purger/PurgerTest.php b/tests/Bridge/DoctrinePhpCr/Purger/PurgerTest.php index 24ba43e9..201249c1 100644 --- a/tests/Bridge/DoctrinePhpCr/Purger/PurgerTest.php +++ b/tests/Bridge/DoctrinePhpCr/Purger/PurgerTest.php @@ -17,6 +17,7 @@ use Doctrine\Common\DataFixtures\Purger\PHPCRPurger; use Doctrine\ODM\PHPCR\DocumentManager; use Fidry\AliceDataFixtures\Bridge\Doctrine\PhpCrDocument\Dummy; +use Fidry\AliceDataFixtures\Bridge\Doctrine\Purger\ObjectManagerPurger; use Fidry\AliceDataFixtures\Bridge\Doctrine\Purger\Purger; use Fidry\AliceDataFixtures\Persistence\PurgeMode; use Fidry\AliceDataFixtures\Persistence\PurgerFactoryInterface; @@ -50,7 +51,7 @@ public function testIsNotClonable() public function testCreatesADoctrineOrmPurgerWithTheAppropriateManagerAndPurgeMode() { $manager = $this->prophesize(DocumentManager::class)->reveal(); - $purger = new Purger($manager); + $purger = new ObjectManagerPurger($manager); $decoratedPurgerReflection = (new \ReflectionObject($purger))->getProperty('purger'); $decoratedPurgerReflection->setAccessible(true); @@ -73,7 +74,7 @@ public function testEmptyDatabase() $this->assertEquals(1, count($manager->getRepository(Dummy::class)->findAll())); - $purger = new Purger($manager, PurgeMode::createDeleteMode()); + $purger = new ObjectManagerPurger($manager, PurgeMode::createDeleteMode()); $purger->purge(); $this->assertEquals(0, count($manager->getRepository(Dummy::class)->findAll())); diff --git a/tests/Bridge/Symfony/Doctrine/FidryAliceDataFixturesBundleTest.php b/tests/Bridge/Symfony/Doctrine/FidryAliceDataFixturesBundleTest.php index ba3b5cdb..55e657e3 100644 --- a/tests/Bridge/Symfony/Doctrine/FidryAliceDataFixturesBundleTest.php +++ b/tests/Bridge/Symfony/Doctrine/FidryAliceDataFixturesBundleTest.php @@ -60,7 +60,7 @@ public function testServiceRegistration() ); $this->assertServiceIsInstanceOf( - \Fidry\AliceDataFixtures\Bridge\Doctrine\Persister\ObjectManagerPersister::class, + \Fidry\AliceDataFixtures\Bridge\Doctrine\Persister\ManagerRegistryPersister::class, 'fidry_alice_data_fixtures.persistence.persister.doctrine.object_manager_persister' ); diff --git a/tests/Bridge/Symfony/ProxyManager/Doctrine/FidryAliceDataFixturesBundleTest.php b/tests/Bridge/Symfony/ProxyManager/Doctrine/FidryAliceDataFixturesBundleTest.php index 1e88c331..ec007745 100644 --- a/tests/Bridge/Symfony/ProxyManager/Doctrine/FidryAliceDataFixturesBundleTest.php +++ b/tests/Bridge/Symfony/ProxyManager/Doctrine/FidryAliceDataFixturesBundleTest.php @@ -13,7 +13,7 @@ namespace Fidry\AliceDataFixtures\Bridge\Symfony\ProxyManager\Doctrine; -use Fidry\AliceDataFixtures\Bridge\Doctrine\Persister\ObjectManagerPersister; +use Fidry\AliceDataFixtures\Bridge\Doctrine\Persister\ManagerRegistryPersister; use Fidry\AliceDataFixtures\Bridge\Doctrine\Purger\Purger; use Fidry\AliceDataFixtures\Bridge\Symfony\FidryAliceDataFixturesBundleTest as NakedFidryAliceDataFixturesBundleTest; use Fidry\AliceDataFixtures\Bridge\Symfony\SymfonyApp\DoctrineKernel; @@ -62,7 +62,7 @@ public function testServiceRegistration() ); $this->assertInstanceOf( - ObjectManagerPersister::class, + ManagerRegistryPersister::class, $this->kernel->getContainer()->get('fidry_alice_data_fixtures.persistence.persister.doctrine.object_manager_persister') );