2010-07-17 16:18:30 +01:00
< ? php
/*
* This file is part of the Symfony package .
2011-01-15 13:29:43 +00:00
*
2011-03-06 11:40:06 +00:00
* ( c ) Fabien Potencier < fabien @ symfony . com >
2010-07-17 16:18:30 +01:00
*
* For the full copyright and license information , please view the LICENSE
* file that was distributed with this source code .
*/
2011-02-10 15:15:51 +00:00
namespace Symfony\Tests\Component\Config\Loader ;
2010-07-17 16:18:30 +01:00
2011-02-10 15:15:51 +00:00
use Symfony\Component\Config\Loader\LoaderResolver ;
use Symfony\Component\Config\Loader\Loader ;
2011-06-20 09:10:34 +01:00
use Symfony\Component\Config\Exception\FileLoaderLoadException ;
2010-07-17 16:18:30 +01:00
class LoaderTest extends \PHPUnit_Framework_TestCase
{
/**
2011-02-10 15:15:51 +00:00
* @ covers Symfony\Component\Config\Loader\Loader :: getResolver
* @ covers Symfony\Component\Config\Loader\Loader :: setResolver
2010-07-17 16:18:30 +01:00
*/
public function testGetSetResolver ()
{
$resolver = new LoaderResolver ();
$loader = new ProjectLoader1 ();
$loader -> setResolver ( $resolver );
$this -> assertSame ( $resolver , $loader -> getResolver (), '->setResolver() sets the resolver loader' );
}
/**
2011-02-10 15:15:51 +00:00
* @ covers Symfony\Component\Config\Loader\Loader :: resolve
2010-07-17 16:18:30 +01:00
*/
public function testResolve ()
{
2011-02-10 15:15:51 +00:00
$loader1 = $this -> getMock ( 'Symfony\Component\Config\Loader\LoaderInterface' );
$loader1 -> expects ( $this -> once ()) -> method ( 'supports' ) -> will ( $this -> returnValue ( true ));
$resolver = new LoaderResolver ( array ( $loader1 ));
2010-07-17 16:18:30 +01:00
$loader = new ProjectLoader1 ();
$loader -> setResolver ( $resolver );
$this -> assertSame ( $loader , $loader -> resolve ( 'foo.foo' ), '->resolve() finds a loader' );
2011-02-10 15:15:51 +00:00
$this -> assertSame ( $loader1 , $loader -> resolve ( 'foo.xml' ), '->resolve() finds a loader' );
2010-07-17 16:18:30 +01:00
2011-02-10 15:15:51 +00:00
$loader1 = $this -> getMock ( 'Symfony\Component\Config\Loader\LoaderInterface' );
$loader1 -> expects ( $this -> once ()) -> method ( 'supports' ) -> will ( $this -> returnValue ( false ));
$resolver = new LoaderResolver ( array ( $loader1 ));
$loader = new ProjectLoader1 ();
$loader -> setResolver ( $resolver );
2010-07-17 16:18:30 +01:00
try {
2011-07-01 09:15:26 +01:00
$loader -> resolve ( 'FOOBAR' );
2011-06-20 09:10:34 +01:00
$this -> fail ( '->resolve() throws a FileLoaderLoadException if the resource cannot be loaded' );
} catch ( FileLoaderLoadException $e ) {
$this -> assertInstanceOf ( 'Symfony\Component\Config\Exception\FileLoaderLoadException' , $e , '->resolve() throws a FileLoaderLoadException if the resource cannot be loaded' );
2010-07-17 16:18:30 +01:00
}
}
}
class ProjectLoader1 extends Loader
{
2010-12-06 06:48:44 +00:00
public function load ( $resource , $type = null )
2010-07-17 16:18:30 +01:00
{
}
2010-12-06 06:48:44 +00:00
public function supports ( $resource , $type = null )
2010-07-17 16:18:30 +01:00
{
return is_string ( $resource ) && 'foo' === pathinfo ( $resource , PATHINFO_EXTENSION );
}
2010-12-06 06:48:44 +00:00
public function getType ()
{
}
2010-07-17 16:18:30 +01:00
}