/** * @cover ::execute */ public function testExecutorWithoutAppend() { $fixtures = ['fixture1']; $documentManagerProphecy = $this->prophesize('Doctrine\\ODM\\PHPCR\\DocumentManager'); $loaderProphecy = $this->prophesize('Hautelook\\AliceBundle\\Alice\\DataFixtures\\LoaderInterface'); $loaderProphecy->load(new Doctrine($documentManagerProphecy->reveal()), $fixtures); $purgerProphecy = $this->prophesize('Doctrine\\Common\\DataFixtures\\Purger\\PHPCRPurger'); $purgerProphecy->setDocumentManager($documentManagerProphecy->reveal())->shouldBeCalled(); $purgerProphecy->purge()->shouldBeCalled(); $executor = new PHPCRExecutor($documentManagerProphecy->reveal(), $loaderProphecy->reveal(), $purgerProphecy->reveal()); $executor->execute($fixtures); }
/** * Gets the executor for the matching the given object manager. * * @param ObjectManager $manager * @param LoaderInterface $loader * @param bool|null $purgeMode * * @return ExecutorInterface */ private function getExecutor(ObjectManager $manager, LoaderInterface $loader, $purgeMode) { switch (true) { case $manager instanceof EntityManagerInterface: $executor = new ORMExecutor($manager, $loader); $purger = new ORMPurger($manager); $purger->setPurgeMode($purgeMode ? ORMPurger::PURGE_MODE_TRUNCATE : ORMPurger::PURGE_MODE_DELETE); break; case $manager instanceof MongoDBDocumentManager: $executor = new MongoDBExecutor($manager, $loader); $purger = new MongoDBPurger($manager); break; case $manager instanceof PHPCRDocumentManager: $executor = new PHPCRExecutor($manager, $loader); $purger = new PHPCRPurger($manager); break; default: throw new \InvalidArgumentException(sprintf('Unsupported manager type %s', get_class($manager))); } $executor->setPurger($purger); return $executor; }