factory = $this->getMockBuilder('Assetic\\Factory\\AssetFactory') ->disableOriginalConstructor() ->getMock(); $this->am = new LazyAssetManager($this->factory); } public function testGetFromLoader() { $resource = $this->getMock('Assetic\\Factory\\Resource\\ResourceInterface'); $loader = $this->getMock('Assetic\\Factory\\Loader\\FormulaLoaderInterface'); $asset = $this->getMock('Assetic\\Asset\\AssetInterface'); $formula = array( array('js/core.js', 'js/more.js'), array('?yui_js'), array('output' => 'js/all.js') ); $loader->expects($this->once()) ->method('load') ->with($resource) ->will($this->returnValue(array('foo' => $formula))); $this->factory->expects($this->once()) ->method('createAsset') ->with($formula[0], $formula[1], $formula[2] + array('name' => 'foo')) ->will($this->returnValue($asset)); $this->am->setLoader('foo', $loader); $this->am->addResource($resource, 'foo'); $this->assertSame($asset, $this->am->get('foo'), '->get() returns an asset from the loader'); // test the "once" expectations $this->am->get('foo'); } public function testGetResources() { $resources = array( $this->getMock('Assetic\\Factory\\Resource\\ResourceInterface'), $this->getMock('Assetic\\Factory\\Resource\\ResourceInterface'), ); $this->am->addResource($resources[0], 'foo'); $this->am->addResource($resources[1], 'bar'); $ret = $this->am->getResources(); foreach ($resources as $resource) { $this->assertTrue(in_array($resource, $ret, true)); } } public function testGetResourcesEmpty() { $this->am->getResources(); } public function testSetFormula() { $this->am->setFormula('foo', array()); $this->am->load(); $this->assertTrue($this->am->hasFormula('foo'), '->load() does not remove manually added formulae'); } public function testIsDebug() { $this->factory->expects($this->once()) ->method('isDebug') ->will($this->returnValue(false)); $this->assertSame(false, $this->am->isDebug(), '->isDebug() proxies the factory'); } }