Вход Регистрация
Файл: gapps/vendor/symfony/http-kernel/Tests/DependencyInjection/FragmentRendererPassTest.php
Строк: 223
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace SymfonyComponentHttpKernelTestsDependencyInjection;

use 
SymfonyComponentHttpFoundationRequest;
use 
SymfonyComponentHttpKernelDependencyInjectionFragmentRendererPass;
use 
SymfonyComponentHttpKernelFragmentFragmentRendererInterface;

class 
FragmentRendererPassTest extends PHPUnit_Framework_TestCase
{
    
/**
     * 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('SymfonyComponentDependencyInjectionDefinition');

        
$builder $this->getMock(
            
'SymfonyComponentDependencyInjectionContainerBuilder',
            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('SymfonyComponentDependencyInjectionDefinition');
        
$renderer
            
->expects($this->once())
            ->
method('addMethodCall')
            ->
with('addRendererService', array('foo''my_content_renderer'))
        ;

        
$definition $this->getMock('SymfonyComponentDependencyInjectionDefinition');
        
$definition->expects($this->atLeastOnce())
            ->
method('getClass')
            ->
will($this->returnValue('SymfonyComponentHttpKernelTestsDependencyInjectionRendererService'));
        
$definition
            
->expects($this->once())
            ->
method('isPublic')
            ->
will($this->returnValue(true))
        ;

        
$builder $this->getMock(
            
'SymfonyComponentDependencyInjectionContainerBuilder',
            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);
    }
}

class 
RendererService implements FragmentRendererInterface
{
    public function 
render($uriRequest $request null, array $options = array())
    {
    }

    public function 
getName()
    {
        return 
'test';
    }
}
Онлайн: 1
Реклама