LoaderTest.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. /*
  3. * This file is part of the Symfony package.
  4. *
  5. * (c) Fabien Potencier <fabien.potencier@symfony-project.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\Routing\Loader;
  11. use Symfony\Component\Routing\Loader\LoaderResolver;
  12. use Symfony\Component\Routing\Loader\Loader;
  13. use Symfony\Component\Routing\Loader\XmlFileLoader;
  14. class LoaderTest extends \PHPUnit_Framework_TestCase
  15. {
  16. /**
  17. * @covers Symfony\Component\Routing\Loader\Loader::getResolver
  18. * @covers Symfony\Component\Routing\Loader\Loader::setResolver
  19. */
  20. public function testGetSetResolver()
  21. {
  22. $resolver = new LoaderResolver();
  23. $loader = new ProjectLoader1();
  24. $loader->setResolver($resolver);
  25. $this->assertSame($resolver, $loader->getResolver(), '->setResolver() sets the resolver loader');
  26. }
  27. /**
  28. * @covers Symfony\Component\Routing\Loader\Loader::resolve
  29. */
  30. public function testResolve()
  31. {
  32. $resolver = new LoaderResolver(array(
  33. $ini = new XmlFileLoader($this->getMock('Symfony\Component\Routing\Loader\FileLocator')),
  34. ));
  35. $loader = new ProjectLoader1();
  36. $loader->setResolver($resolver);
  37. $this->assertSame($ini, $loader->resolve('foo.xml'), '->resolve() finds a loader');
  38. $this->assertSame($loader, $loader->resolve('foo.foo'), '->resolve() finds a loader');
  39. try {
  40. $loader->resolve(new \stdClass());
  41. $this->fail('->resolve() throws an \InvalidArgumentException if the resource cannot be loaded');
  42. } catch (\Exception $e) {
  43. $this->assertInstanceOf('\InvalidArgumentException', $e, '->resolve() throws an \InvalidArgumentException if the resource cannot be loaded');
  44. }
  45. }
  46. }
  47. class ProjectLoader1 extends Loader
  48. {
  49. public function load($resource, $type = null)
  50. {
  51. }
  52. public function supports($resource, $type = null)
  53. {
  54. return is_string($resource) && 'foo' === pathinfo($resource, PATHINFO_EXTENSION);
  55. }
  56. public function getType()
  57. {
  58. }
  59. }