/**
  * @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;
 }