DelegatingLoaderTest.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. /*
  3. * This file is part of the Symfony package.
  4. *
  5. * (c) Fabien Potencier <fabien@symfony.com>
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. namespace Symfony\Tests\Component\Config\Loader;
  11. use Symfony\Component\Config\Loader\LoaderResolver;
  12. use Symfony\Component\Config\Loader\DelegatingLoader;
  13. use Symfony\Component\Routing\Route;
  14. class DelegatingLoaderTest extends \PHPUnit_Framework_TestCase
  15. {
  16. /**
  17. * @covers Symfony\Component\Config\Loader\DelegatingLoader::__construct
  18. */
  19. public function testConstructor()
  20. {
  21. $loader = new DelegatingLoader($resolver = new LoaderResolver());
  22. $this->assertTrue(true, '__construct() takes a loader resolver as its first argument');
  23. }
  24. /**
  25. * @covers Symfony\Component\Config\Loader\DelegatingLoader::getResolver
  26. * @covers Symfony\Component\Config\Loader\DelegatingLoader::setResolver
  27. */
  28. public function testGetSetResolver()
  29. {
  30. $resolver = new LoaderResolver();
  31. $loader = new DelegatingLoader($resolver);
  32. $this->assertSame($resolver, $loader->getResolver(), '->getResolver() gets the resolver loader');
  33. $loader->setResolver($resolver = new LoaderResolver());
  34. $this->assertSame($resolver, $loader->getResolver(), '->setResolver() sets the resolver loader');
  35. }
  36. /**
  37. * @covers Symfony\Component\Config\Loader\DelegatingLoader::supports
  38. */
  39. public function testSupports()
  40. {
  41. $loader1 = $this->getMock('Symfony\Component\Config\Loader\LoaderInterface');
  42. $loader1->expects($this->once())->method('supports')->will($this->returnValue(true));
  43. $loader = new DelegatingLoader(new LoaderResolver(array($loader1)));
  44. $this->assertTrue($loader->supports('foo.xml'), '->supports() returns true if the resource is loadable');
  45. $loader1 = $this->getMock('Symfony\Component\Config\Loader\LoaderInterface');
  46. $loader1->expects($this->once())->method('supports')->will($this->returnValue(false));
  47. $loader = new DelegatingLoader(new LoaderResolver(array($loader1)));
  48. $this->assertFalse($loader->supports('foo.foo'), '->supports() returns false if the resource is not loadable');
  49. }
  50. /**
  51. * @covers Symfony\Component\Config\Loader\DelegatingLoader::load
  52. */
  53. public function testLoad()
  54. {
  55. $loader = $this->getMock('Symfony\Component\Config\Loader\LoaderInterface');
  56. $loader->expects($this->once())->method('supports')->will($this->returnValue(true));
  57. $loader->expects($this->once())->method('load');
  58. $resolver = new LoaderResolver(array($loader));
  59. $loader = new DelegatingLoader($resolver);
  60. $loader->load('foo');
  61. }
  62. /**
  63. * @expectedException Symfony\Component\Config\Exception\FileLoaderLoadException
  64. */
  65. public function testLoadThrowsAnExceptionIfTheResourceCannotBeLoaded()
  66. {
  67. $loader = $this->getMock('Symfony\Component\Config\Loader\LoaderInterface');
  68. $loader->expects($this->once())->method('supports')->will($this->returnValue(false));
  69. $resolver = new LoaderResolver(array($loader));
  70. $loader = new DelegatingLoader($resolver);
  71. $loader->load('foo');
  72. }
  73. }