ExtensionTest.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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\Component\DependencyInjection\Tests\Extension;
  11. use PHPUnit\Framework\TestCase;
  12. class ExtensionTest extends TestCase
  13. {
  14. /**
  15. * @dataProvider getResolvedEnabledFixtures
  16. */
  17. public function testIsConfigEnabledReturnsTheResolvedValue($enabled)
  18. {
  19. $pb = $this->getMockBuilder('Symfony\Component\DependencyInjection\ParameterBag\ParameterBag')
  20. ->setMethods(array('resolveValue'))
  21. ->getMock()
  22. ;
  23. $container = $this->getMockBuilder('Symfony\Component\DependencyInjection\ContainerBuilder')
  24. ->setMethods(array('getParameterBag'))
  25. ->getMock()
  26. ;
  27. $pb->expects($this->once())
  28. ->method('resolveValue')
  29. ->with($this->equalTo($enabled))
  30. ->will($this->returnValue($enabled))
  31. ;
  32. $container->expects($this->once())
  33. ->method('getParameterBag')
  34. ->will($this->returnValue($pb))
  35. ;
  36. $extension = $this->getMockBuilder('Symfony\Component\DependencyInjection\Extension\Extension')
  37. ->setMethods(array())
  38. ->getMockForAbstractClass()
  39. ;
  40. $r = new \ReflectionMethod('Symfony\Component\DependencyInjection\Extension\Extension', 'isConfigEnabled');
  41. $r->setAccessible(true);
  42. $r->invoke($extension, $container, array('enabled' => $enabled));
  43. }
  44. public function getResolvedEnabledFixtures()
  45. {
  46. return array(
  47. array(true),
  48. array(false),
  49. );
  50. }
  51. /**
  52. * @expectedException \Symfony\Component\DependencyInjection\Exception\InvalidArgumentException
  53. * @expectedExceptionMessage The config array has no 'enabled' key.
  54. */
  55. public function testIsConfigEnabledOnNonEnableableConfig()
  56. {
  57. $container = $this->getMockBuilder('Symfony\Component\DependencyInjection\ContainerBuilder')
  58. ->getMock()
  59. ;
  60. $extension = $this->getMockBuilder('Symfony\Component\DependencyInjection\Extension\Extension')
  61. ->setMethods(array())
  62. ->getMockForAbstractClass()
  63. ;
  64. $r = new \ReflectionMethod('Symfony\Component\DependencyInjection\Extension\Extension', 'isConfigEnabled');
  65. $r->setAccessible(true);
  66. $r->invoke($extension, $container, array());
  67. }
  68. }