public function testReadUploadableAnnotationFromParent() { $uploadable = Mocks::getUploadableMock($this); $reader = $this->getMock('Doctrine\\Common\\Annotations\\Reader'); $reader->expects($this->any())->method('getClassAnnotation')->will($this->returnCallBack(function () use($uploadable) { $args = func_get_args(); if ('Iphp\\FileStoreBundle\\Tests\\ChildOfDummyEntity' === $args[0]->getName()) { return null; } if ('Iphp\\FileStoreBundle\\Tests\\DummyEntity' === $args[0]->getName()) { return $uploadable; } })); $entity = new ChildOfDummyEntity(); $driver = new AnnotationDriver($reader); $annot = $driver->readUploadable(new \ReflectionClass($entity)); $this->assertEquals($uploadable, $annot); }
public function testConfiguredNamerRetrievedFromInvoker() { $obj = new DummyEntity(); $class = new \ReflectionClass($obj); $mappingsConfig = array('dummy_file' => array('upload_dir' => '/www/web/images', 'upload_path' => '/images', 'namer' => array('translit' => array('service' => 'iphp.filestore.namer.default')))); $uploadable = Mocks::getUploadableMock($this); $fileField = Mocks::getUploadableFieldMock($this); $fileField->expects($this->any())->method('getMapping')->will($this->returnValue('dummy_file')); $fileField->expects($this->once())->method('getFileUploadPropertyName')->will($this->returnValue('file')); $fileField->expects($this->once())->method('getFileDataPropertyName')->will($this->returnValue('file')); $this->driver->expects($this->once())->method('readUploadable')->with($class)->will($this->returnValue($uploadable)); $this->driver->expects($this->once())->method('readUploadableFields')->with($class)->will($this->returnValue(array($fileField))); $factory = new PropertyMappingFactory($this->namerServiceInvoker, $this->driver, $mappingsConfig); $mappings = $factory->getMappingsFromObject($obj, $class); $this->assertEquals(1, count($mappings)); if (count($mappings) > 0) { $mapping = $mappings[0]; $this->namerServiceInvoker->expects($this->once())->method('rename')->with('iphp.filestore.namer.default', 'translit', $mapping, 'ab cde', array())->will($this->returnValue('ab-cde')); $this->assertEquals($mapping->useFileNamer('ab cde'), 'ab-cde'); $this->assertTrue($mapping->hasNamer()); } }