public function resolve($name)
{
if (!isset($this->concats[$name])) {
return null;
}
$resolvedAssets = array();
foreach ((array) $this->concats[$name] as $assetName) {
$resolvedAsset = $this->getAggregateResolver()->resolve((string) $assetName);
if (!$resolvedAsset instanceof AssetInterface) {
throw new Exception\RuntimeException(sprintf('Asset "%s" from collection "%s" can\'t be resolved ' . 'to an Asset implementing Assetic\\Asset\\AssetInterface.', $assetName, $name));
}
$resolvedAsset->mimetype = $this->getMimeResolver()->getMimeType($resolvedAsset->getSourceRoot() . $resolvedAsset->getSourcePath());
$this->getAssetFilterManager()->setFilters($assetName, $resolvedAsset);
$resolvedAssets[] = $resolvedAsset;
}
$aggregateAsset = new AggregateAsset($resolvedAssets);
$this->getAssetFilterManager()->setFilters($name, $aggregateAsset);
$aggregateAsset->setTargetPath($name);
return $aggregateAsset;
}
public function testResolveAssetSuccess() { $resolver = new ConcatResolver(); $asset1 = array('bacon' => array(__FILE__, __FILE__)); $callback = function ($file) { $asset = new \Assetic\Asset\FileAsset($file); return $asset; }; $aggregateResolver = $this->getMock('AssetManager\\Resolver\\ResolverInterface'); $aggregateResolver->expects($this->exactly(2))->method('resolve')->will($this->returnCallback($callback)); $resolver->setAggregateResolver($aggregateResolver); $assetFilterManager = new \AssetManager\Service\AssetFilterManager(); $mimeResolver = new MimeResolver(); $assetFilterManager->setMimeResolver($mimeResolver); $resolver->setMimeResolver($mimeResolver); $resolver->setAssetFilterManager($assetFilterManager); $resolver->setConcats($asset1); $asset = $resolver->resolve('bacon'); $this->assertTrue($asset instanceof \AssetManager\Asset\AggregateAsset); $this->assertEquals($asset->dump(), file_get_contents(__FILE__) . file_get_contents(__FILE__)); }