LoaderChainTest.php 2.8 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\Validator\Mapping\Loader;
  11. use Symfony\Component\Validator\Mapping\ClassMetadata;
  12. use Symfony\Component\Validator\Mapping\Loader\LoaderChain;
  13. class LoaderChainTest extends \PHPUnit_Framework_TestCase
  14. {
  15. public function testAllLoadersAreCalled()
  16. {
  17. $metadata = new ClassMetadata('\stdClass');
  18. $loader1 = $this->getMock('Symfony\Component\Validator\Mapping\Loader\LoaderInterface');
  19. $loader1->expects($this->once())
  20. ->method('loadClassMetadata')
  21. ->with($this->equalTo($metadata));
  22. $loader2 = $this->getMock('Symfony\Component\Validator\Mapping\Loader\LoaderInterface');
  23. $loader2->expects($this->once())
  24. ->method('loadClassMetadata')
  25. ->with($this->equalTo($metadata));
  26. $chain = new LoaderChain(array(
  27. $loader1,
  28. $loader2,
  29. ));
  30. $chain->loadClassMetadata($metadata);
  31. }
  32. public function testReturnsTrueIfAnyLoaderReturnedTrue()
  33. {
  34. $metadata = new ClassMetadata('\stdClass');
  35. $loader1 = $this->getMock('Symfony\Component\Validator\Mapping\Loader\LoaderInterface');
  36. $loader1->expects($this->any())
  37. ->method('loadClassMetadata')
  38. ->will($this->returnValue(true));
  39. $loader2 = $this->getMock('Symfony\Component\Validator\Mapping\Loader\LoaderInterface');
  40. $loader2->expects($this->any())
  41. ->method('loadClassMetadata')
  42. ->will($this->returnValue(false));
  43. $chain = new LoaderChain(array(
  44. $loader1,
  45. $loader2,
  46. ));
  47. $this->assertTrue($chain->loadClassMetadata($metadata));
  48. }
  49. public function testReturnsFalseIfNoLoaderReturnedTrue()
  50. {
  51. $metadata = new ClassMetadata('\stdClass');
  52. $loader1 = $this->getMock('Symfony\Component\Validator\Mapping\Loader\LoaderInterface');
  53. $loader1->expects($this->any())
  54. ->method('loadClassMetadata')
  55. ->will($this->returnValue(false));
  56. $loader2 = $this->getMock('Symfony\Component\Validator\Mapping\Loader\LoaderInterface');
  57. $loader2->expects($this->any())
  58. ->method('loadClassMetadata')
  59. ->will($this->returnValue(false));
  60. $chain = new LoaderChain(array(
  61. $loader1,
  62. $loader2,
  63. ));
  64. $this->assertFalse($chain->loadClassMetadata($metadata));
  65. }
  66. }