AbstractBcGeneratorTest.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. /*
  3. * This file is part of the Sonata package.
  4. *
  5. * (c) Thomas Rabaix <thomas.rabaix@sonata-project.org>
  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 Sonata\AdminBundle\Tests\Generator;
  11. use Sonata\AdminBundle\Tests\Fixtures\Generator\GeneratorBc22;
  12. use Sonata\AdminBundle\Tests\Fixtures\Generator\GeneratorBc23;
  13. /**
  14. * @author Andrej Hudec <pulzarraider@gmail.com>
  15. */
  16. class AbstractBcGeneratorTest extends \PHPUnit_Framework_TestCase
  17. {
  18. private static $errorReportingBackup;
  19. public static function setUpBeforeClass()
  20. {
  21. //Disable E_STRICT errors for this test only
  22. self::$errorReportingBackup = error_reporting();
  23. error_reporting(self::$errorReportingBackup ^ E_STRICT);
  24. }
  25. public static function tearDownAfterClass()
  26. {
  27. //Restore error reporting
  28. error_reporting(self::$errorReportingBackup);
  29. }
  30. public function testRenderBc()
  31. {
  32. $skeletonDir = 'path/to/templates';
  33. $template = 'test.html.twig';
  34. $parameters = array('foo' => 'bar');
  35. $generator22 = new GeneratorBc22();
  36. $generator22->setSkeletonDirs($skeletonDir);
  37. $generator22->setBc(true);
  38. $this->assertEquals('Result OK', $this->callMethod($generator22, 'renderBc', array($template, $parameters)));
  39. $generator23 = new GeneratorBc23();
  40. $generator23->setSkeletonDirs($skeletonDir);
  41. $generator23->setBc(false);
  42. $this->assertEquals('Result OK', $this->callMethod($generator23, 'renderBc', array($template, $parameters)));
  43. }
  44. public function testRenderFileBc()
  45. {
  46. $skeletonDir = 'path/to/templates';
  47. $template = 'test.html.twig';
  48. $parameters = array('foo' => 'bar');
  49. $target = 'target_file';
  50. $generator22 = new GeneratorBc22();
  51. $generator22->setSkeletonDirs($skeletonDir);
  52. $generator22->setBc(true);
  53. $this->assertTrue($this->callMethod($generator22, 'renderFileBc', array($template, $target, $parameters)));
  54. $generator23 = new GeneratorBc23();
  55. $generator23->setSkeletonDirs($skeletonDir);
  56. $generator23->setBc(false);
  57. $this->assertTrue($this->callMethod($generator23, 'renderFileBc', array($template, $target, $parameters)));
  58. }
  59. protected function callMethod($obj, $name, array $args)
  60. {
  61. $class = new \ReflectionClass($obj);
  62. $method = $class->getMethod($name);
  63. $method->setAccessible(true);
  64. return $method->invokeArgs($obj, $args);
  65. }
  66. }