You are here

class FragmentRendererPassTest in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/symfony/http-kernel/Tests/DependencyInjection/FragmentRendererPassTest.php \Symfony\Component\HttpKernel\Tests\DependencyInjection\FragmentRendererPassTest

Hierarchy

  • class \Symfony\Component\HttpKernel\Tests\DependencyInjection\FragmentRendererPassTest extends \Symfony\Component\HttpKernel\Tests\DependencyInjection\PHPUnit_Framework_TestCase

Expanded class hierarchy of FragmentRendererPassTest

File

vendor/symfony/http-kernel/Tests/DependencyInjection/FragmentRendererPassTest.php, line 19

Namespace

Symfony\Component\HttpKernel\Tests\DependencyInjection
View source
class FragmentRendererPassTest extends \PHPUnit_Framework_TestCase {

  /**
   * @group legacy
   */
  public function testLegacyFragmentRedererWithoutAlias() {

    // no alias
    $services = array(
      'my_content_renderer' => array(
        array(),
      ),
    );
    $renderer = $this
      ->getMock('Symfony\\Component\\DependencyInjection\\Definition');
    $renderer
      ->expects($this
      ->once())
      ->method('addMethodCall')
      ->with('addRenderer', array(
      new Reference('my_content_renderer'),
    ));
    $definition = $this
      ->getMock('Symfony\\Component\\DependencyInjection\\Definition');
    $definition
      ->expects($this
      ->atLeastOnce())
      ->method('getClass')
      ->will($this
      ->returnValue('Symfony\\Component\\HttpKernel\\Tests\\DependencyInjection\\RendererService'));
    $definition
      ->expects($this
      ->once())
      ->method('isPublic')
      ->will($this
      ->returnValue(true));
    $builder = $this
      ->getMock('Symfony\\Component\\DependencyInjection\\ContainerBuilder', array(
      'hasDefinition',
      'findTaggedServiceIds',
      'getDefinition',
    ));
    $builder
      ->expects($this
      ->any())
      ->method('hasDefinition')
      ->will($this
      ->returnValue(true));

    // We don't test kernel.fragment_renderer here
    $builder
      ->expects($this
      ->atLeastOnce())
      ->method('findTaggedServiceIds')
      ->will($this
      ->returnValue($services));
    $builder
      ->expects($this
      ->atLeastOnce())
      ->method('getDefinition')
      ->will($this
      ->onConsecutiveCalls($renderer, $definition));
    $pass = new FragmentRendererPass();
    $pass
      ->process($builder);
  }

  /**
   * Tests that content rendering not implementing FragmentRendererInterface
   * trigger an exception.
   *
   * @expectedException \InvalidArgumentException
   */
  public function testContentRendererWithoutInterface() {

    // one service, not implementing any interface
    $services = array(
      'my_content_renderer' => array(
        array(
          'alias' => 'foo',
        ),
      ),
    );
    $definition = $this
      ->getMock('Symfony\\Component\\DependencyInjection\\Definition');
    $builder = $this
      ->getMock('Symfony\\Component\\DependencyInjection\\ContainerBuilder', array(
      'hasDefinition',
      'findTaggedServiceIds',
      'getDefinition',
    ));
    $builder
      ->expects($this
      ->any())
      ->method('hasDefinition')
      ->will($this
      ->returnValue(true));

    // We don't test kernel.fragment_renderer here
    $builder
      ->expects($this
      ->atLeastOnce())
      ->method('findTaggedServiceIds')
      ->will($this
      ->returnValue($services));
    $builder
      ->expects($this
      ->atLeastOnce())
      ->method('getDefinition')
      ->will($this
      ->returnValue($definition));
    $pass = new FragmentRendererPass();
    $pass
      ->process($builder);
  }
  public function testValidContentRenderer() {
    $services = array(
      'my_content_renderer' => array(
        array(
          'alias' => 'foo',
        ),
      ),
    );
    $renderer = $this
      ->getMock('Symfony\\Component\\DependencyInjection\\Definition');
    $renderer
      ->expects($this
      ->once())
      ->method('addMethodCall')
      ->with('addRendererService', array(
      'foo',
      'my_content_renderer',
    ));
    $definition = $this
      ->getMock('Symfony\\Component\\DependencyInjection\\Definition');
    $definition
      ->expects($this
      ->atLeastOnce())
      ->method('getClass')
      ->will($this
      ->returnValue('Symfony\\Component\\HttpKernel\\Tests\\DependencyInjection\\RendererService'));
    $definition
      ->expects($this
      ->once())
      ->method('isPublic')
      ->will($this
      ->returnValue(true));
    $builder = $this
      ->getMock('Symfony\\Component\\DependencyInjection\\ContainerBuilder', array(
      'hasDefinition',
      'findTaggedServiceIds',
      'getDefinition',
    ));
    $builder
      ->expects($this
      ->any())
      ->method('hasDefinition')
      ->will($this
      ->returnValue(true));

    // We don't test kernel.fragment_renderer here
    $builder
      ->expects($this
      ->atLeastOnce())
      ->method('findTaggedServiceIds')
      ->will($this
      ->returnValue($services));
    $builder
      ->expects($this
      ->atLeastOnce())
      ->method('getDefinition')
      ->will($this
      ->onConsecutiveCalls($renderer, $definition));
    $pass = new FragmentRendererPass();
    $pass
      ->process($builder);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
FragmentRendererPassTest::testContentRendererWithoutInterface public function Tests that content rendering not implementing FragmentRendererInterface trigger an exception.
FragmentRendererPassTest::testLegacyFragmentRedererWithoutAlias public function @group legacy
FragmentRendererPassTest::testValidContentRenderer public function