LoaderChainTest.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. namespace Symfony\Tests\Components\Validator\Mapping\Loader;
  3. require_once __DIR__.'/../../../../../../bootstrap.php';
  4. use Symfony\Components\Validator\Mapping\ClassMetadata;
  5. use Symfony\Components\Validator\Mapping\Loader\LoaderChain;
  6. class LoaderChainTest extends \PHPUnit_Framework_TestCase
  7. {
  8. public function testAllLoadersAreCalled()
  9. {
  10. $metadata = new ClassMetadata('\stdClass');
  11. $loader1 = $this->getMock('Symfony\Components\Validator\Mapping\Loader\LoaderInterface');
  12. $loader1->expects($this->once())
  13. ->method('loadClassMetadata')
  14. ->with($this->equalTo($metadata));
  15. $loader2 = $this->getMock('Symfony\Components\Validator\Mapping\Loader\LoaderInterface');
  16. $loader2->expects($this->once())
  17. ->method('loadClassMetadata')
  18. ->with($this->equalTo($metadata));
  19. $chain = new LoaderChain(array(
  20. $loader1,
  21. $loader2,
  22. ));
  23. $chain->loadClassMetadata($metadata);
  24. }
  25. public function testReturnsTrueIfAnyLoaderReturnedTrue()
  26. {
  27. $metadata = new ClassMetadata('\stdClass');
  28. $loader1 = $this->getMock('Symfony\Components\Validator\Mapping\Loader\LoaderInterface');
  29. $loader1->expects($this->any())
  30. ->method('loadClassMetadata')
  31. ->will($this->returnValue(true));
  32. $loader2 = $this->getMock('Symfony\Components\Validator\Mapping\Loader\LoaderInterface');
  33. $loader2->expects($this->any())
  34. ->method('loadClassMetadata')
  35. ->will($this->returnValue(false));
  36. $chain = new LoaderChain(array(
  37. $loader1,
  38. $loader2,
  39. ));
  40. $this->assertTrue($chain->loadClassMetadata($metadata));
  41. }
  42. public function testReturnsFalseIfNoLoaderReturnedTrue()
  43. {
  44. $metadata = new ClassMetadata('\stdClass');
  45. $loader1 = $this->getMock('Symfony\Components\Validator\Mapping\Loader\LoaderInterface');
  46. $loader1->expects($this->any())
  47. ->method('loadClassMetadata')
  48. ->will($this->returnValue(false));
  49. $loader2 = $this->getMock('Symfony\Components\Validator\Mapping\Loader\LoaderInterface');
  50. $loader2->expects($this->any())
  51. ->method('loadClassMetadata')
  52. ->will($this->returnValue(false));
  53. $chain = new LoaderChain(array(
  54. $loader1,
  55. $loader2,
  56. ));
  57. $this->assertFalse($chain->loadClassMetadata($metadata));
  58. }
  59. }