public function testGetUrl() { $container = \Phake::mock('Symfony\\Component\\DependencyInjection\\ContainerInterface'); \Phake::when($container)->getParameter(ModeraFileRepositoryExtension::CONFIG_KEY . '.default_url_generator')->thenReturn('default_url_generator'); \Phake::when($container)->getParameter(ModeraFileRepositoryExtension::CONFIG_KEY . '.url_generators')->thenReturn(array('foo' => 'foo_url_generator', 'bar' => 'bar_url_generator')); $defaultUrlGenerator = \Phake::mock('Modera\\FileRepositoryBundle\\StoredFile\\UrlGeneratorInterface'); \Phake::when($container)->get('default_url_generator')->thenReturn($defaultUrlGenerator); $fooUrlGenerator = \Phake::mock('Modera\\FileRepositoryBundle\\StoredFile\\UrlGeneratorInterface'); \Phake::when($container)->get('foo_url_generator')->thenReturn($fooUrlGenerator); \Phake::when($container)->get('bar_url_generator')->thenReturn('not_url_generator'); $context = array(); $splFile = new \SplFileInfo(__FILE__); $repository = \Phake::mock('Modera\\FileRepositoryBundle\\Entity\\Repository'); \Phake::when($repository)->generateStorageKey($splFile, $context)->thenReturn('storage-key'); $storedFile = new StoredFile($repository, $splFile, $context); $storedFile->init($container); \Phake::when($defaultUrlGenerator)->generateUrl($storedFile)->thenReturn('default_url'); \Phake::when($fooUrlGenerator)->generateUrl($storedFile)->thenReturn('foo_url'); \Phake::when($repository)->getConfig()->thenReturn(array('filesystem' => 'foo')); $this->assertEquals('foo_url', $storedFile->getUrl()); \Phake::when($repository)->getConfig()->thenReturn(array('filesystem' => 'bar')); $this->assertEquals('default_url', $storedFile->getUrl()); \Phake::when($repository)->getConfig()->thenReturn(array('filesystem' => 'baz')); $this->assertEquals('default_url', $storedFile->getUrl()); }
/** * @param \SplFileInfo $file * @param array $context * * @return StoredFile */ public function createFile(\SplFileInfo $file, array $context = array()) { $result = new StoredFile($this, $file, $context); $result->init($this->container); $this->files->add($result); return $result; }