4 * This file is part of the Symfony package.
6 * (c) Fabien Potencier <fabien@symfony.com>
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
12 namespace Symfony\Component\Config\Tests\Loader;
14 use PHPUnit\Framework\TestCase;
15 use Symfony\Component\Config\Loader\Loader;
17 class LoaderTest extends TestCase
19 public function testGetSetResolver()
21 $resolver = $this->getMockBuilder('Symfony\Component\Config\Loader\LoaderResolverInterface')->getMock();
23 $loader = new ProjectLoader1();
24 $loader->setResolver($resolver);
26 $this->assertSame($resolver, $loader->getResolver(), '->setResolver() sets the resolver loader');
29 public function testResolve()
31 $resolvedLoader = $this->getMockBuilder('Symfony\Component\Config\Loader\LoaderInterface')->getMock();
33 $resolver = $this->getMockBuilder('Symfony\Component\Config\Loader\LoaderResolverInterface')->getMock();
34 $resolver->expects($this->once())
37 ->will($this->returnValue($resolvedLoader));
39 $loader = new ProjectLoader1();
40 $loader->setResolver($resolver);
42 $this->assertSame($loader, $loader->resolve('foo.foo'), '->resolve() finds a loader');
43 $this->assertSame($resolvedLoader, $loader->resolve('foo.xml'), '->resolve() finds a loader');
47 * @expectedException \Symfony\Component\Config\Exception\FileLoaderLoadException
49 public function testResolveWhenResolverCannotFindLoader()
51 $resolver = $this->getMockBuilder('Symfony\Component\Config\Loader\LoaderResolverInterface')->getMock();
52 $resolver->expects($this->once())
55 ->will($this->returnValue(false));
57 $loader = new ProjectLoader1();
58 $loader->setResolver($resolver);
60 $loader->resolve('FOOBAR');
63 public function testImport()
65 $resolvedLoader = $this->getMockBuilder('Symfony\Component\Config\Loader\LoaderInterface')->getMock();
66 $resolvedLoader->expects($this->once())
69 ->will($this->returnValue('yes'));
71 $resolver = $this->getMockBuilder('Symfony\Component\Config\Loader\LoaderResolverInterface')->getMock();
72 $resolver->expects($this->once())
75 ->will($this->returnValue($resolvedLoader));
77 $loader = new ProjectLoader1();
78 $loader->setResolver($resolver);
80 $this->assertEquals('yes', $loader->import('foo'));
83 public function testImportWithType()
85 $resolvedLoader = $this->getMockBuilder('Symfony\Component\Config\Loader\LoaderInterface')->getMock();
86 $resolvedLoader->expects($this->once())
89 ->will($this->returnValue('yes'));
91 $resolver = $this->getMockBuilder('Symfony\Component\Config\Loader\LoaderResolverInterface')->getMock();
92 $resolver->expects($this->once())
95 ->will($this->returnValue($resolvedLoader));
97 $loader = new ProjectLoader1();
98 $loader->setResolver($resolver);
100 $this->assertEquals('yes', $loader->import('foo', 'bar'));
104 class ProjectLoader1 extends Loader
106 public function load($resource, $type = null)
110 public function supports($resource, $type = null)
112 return is_string($resource) && 'foo' === pathinfo($resource, PATHINFO_EXTENSION);
115 public function getType()