/** * @return \Doctrine\Common\EventManager */ protected function getEntityManager() { $evm = new EventManager(); $this->_translatableListener = new TranslatableListener(); $evm->addEventSubscriber($this->_translatableListener); $this->_filesystem1 = new Filesystem(new Local(FILESYSTEM1)); $this->_filesystem2 = new Filesystem(new Local(FILESYSTEM2)); $handler = new FileHandler\ChainHandler(array(new FileHandler\GaufretteHandler(), new FileHandler\SplFileInfoHandler())); $keymaker = new Entity(); $this->_uploadableListener = new UploadableListener(array('one' => $this->_filesystem1, 'two' => $this->_filesystem2), $handler); $this->_uploadableListener->setDefaultFilesystem($this->_filesystem1); $this->_uploadableListener->setDefaultKeymaker($keymaker); $evm->addEventSubscriber($this->_uploadableListener); $connectionParams = array('driver' => 'pdo_sqlite', 'memory' => true); $config = $this->getMockAnnotatedConfig(); $conn = \Doctrine\DBAL\DriverManager::getConnection($connectionParams, $config, $evm); $em = EntityManager::create($conn, $config, $evm); $schema = array_map(function ($class) use($em) { return $em->getClassMetadata($class); }, (array) $this->getUsedEntityFixtures()); $schemaTool = new SchemaTool($em); $schemaTool->dropSchema($schema); $schemaTool->updateSchema($schema, true); return $em; }
/** * @param \Doctrine\Common\Persistence\ObjectManager $objectManager * @param string $class * @return \FSi\DoctrineExtensions\Uploadable\Mapping\ClassMetadata */ public function getExtendedMetadata(ObjectManager $objectManager, $class) { /* @var $metadata \FSi\DoctrineExtensions\Uploadable\Mapping\ClassMetadata */ $metadata = parent::getExtendedMetadata($objectManager, $class); $class = ltrim($class, '\\'); if (array_key_exists($class, $this->configuration)) { $properties = $metadata->getUploadableProperties(); foreach ($this->configuration as $property => $configuration) { if (array_key_exists($property, $properties)) { if (isset($configuration['filesystem'])) { $properties[$property]['filesystem'] = $configuration['filesystem']; } if (isset($configuration['keymaker'])) { $properties[$property]['keymaker'] = $configuration['keymaker']; } if (isset($configuration['keyPattern'])) { $properties[$property]['keyPattern'] = $configuration['keyPattern']; } } } foreach ($properties as $property => $configuration) { $metadata->addUploadableProperty($property, $properties[$property]['targetField'], $properties[$property]['filesystem'], $properties[$property]['keymaker'], $properties[$property]['keyLength'], $properties[$property]['keyPattern']); } } return $metadata; }
public function testSettingAndRemovingSingleFilesystem() { $f1 = $this->getFilesystemMock(); $f2 = $this->getFilesystemMock(); $listener = new UploadableListener(array(), $this->getFileHandlerMock()); $listener->setFilesystem('one', $f1); $this->assertTrue($listener->hasFilesystem('one')); $this->assertSame($f1, $listener->getFilesystem('one')); $listener->setFilesystem('two', $f2); $this->assertTrue($listener->hasFilesystem('two')); $this->assertSame($f2, $listener->getFilesystem('two')); $listener->removeFilesystem('one'); $this->assertFalse($listener->hasFilesystem('one')); $listener->removeFilesystem('two'); $this->assertFalse($listener->hasFilesystem('two')); $this->assertEquals(0, count($listener->getFilesystems())); }