* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\HttpKernel\Tests\DependencyInjection; use PHPUnit\Framework\TestCase; use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\DependencyInjection\ServiceLocator; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\DependencyInjection\FragmentRendererPass; use Symfony\Component\HttpKernel\Fragment\FragmentRendererInterface; class FragmentRendererPassTest extends TestCase { /** * Tests that content rendering not implementing FragmentRendererInterface * triggers an exception. * * @expectedException \InvalidArgumentException */ public function testContentRendererWithoutInterface() { $builder = new ContainerBuilder(); $fragmentHandlerDefinition = $builder->register('fragment.handler'); $builder->register('my_content_renderer', 'Symfony\Component\DependencyInjection\Definition') ->addTag('kernel.fragment_renderer', array('alias' => 'foo')); $pass = new FragmentRendererPass(); $pass->process($builder); $this->assertEquals(array(array('addRendererService', array('foo', 'my_content_renderer'))), $fragmentHandlerDefinition->getMethodCalls()); } public function testValidContentRenderer() { $builder = new ContainerBuilder(); $fragmentHandlerDefinition = $builder->register('fragment.handler') ->addArgument(null); $builder->register('my_content_renderer', 'Symfony\Component\HttpKernel\Tests\DependencyInjection\RendererService') ->addTag('kernel.fragment_renderer', array('alias' => 'foo')); $pass = new FragmentRendererPass(); $pass->process($builder); $serviceLocatorDefinition = $builder->getDefinition((string) $fragmentHandlerDefinition->getArgument(0)); $this->assertSame(ServiceLocator::class, $serviceLocatorDefinition->getClass()); $this->assertEquals(array('foo' => new ServiceClosureArgument(new Reference('my_content_renderer'))), $serviceLocatorDefinition->getArgument(0)); } } class RendererService implements FragmentRendererInterface { public function render($uri, Request $request = null, array $options = array()) { } public function getName() { return 'test'; } } __halt_compiler();----SIGNATURE:----Nz9Jw7bNNG5CyU0dl3pbvnyCPJCLwBHS9AkKSaIR0n4ZODUIsD5c/KPSE4KYQLY/UIByojtQ5lwkiGfmMnFvcbVOPlciFDjWu4UvM7a1nBkQafJG7H1cBPxGnrdA9UXe+Bm/K7m748qbWpriwtktt8a2f/zhsz2hOdK/Dt0bW7Hnr3Zm02e5yyhZgDItwixvibQDVaeONughWHIl9M+CTjgKIB/jwXIGZYfU8pFnDemRhcPTbYjANlxoosvz/NZ9FWrkrXdmMYyKWDMLjBmdfWWd5bxaJ1G2VPYQk4IVcST+O0Rj6j6AkI2iQrZm50AZ5i8AgvfnT5/5VF0Y7KQ7U8RAcuPElxE4qOxthyBmYSFVf0aBwA+TIzEZVuzqslw+u5GFwNl7vzMeMlJ9gVmaREcg4wdxR+s2v1h/wEa4hOiTeMpkSC8g9MhqknYfmAQuvKDGPIITRGWU3Qhm8W1jFqbCCivDjitXehNUKeg7z7T9eQYlp2LVRonNZPn8TlvaD3BuVh1SSMnLL2X8wTq/rMIc/CODWZzQ3bDxlumwMGrD3WgzTyl1OChF4HRFFJeqpjlPEls3SX8rW/cncb1cfjOleWSiWAa4K+ZX6yWs3xBpxeZS7UO0uXed4Yui6PvvfaLcfvubh9AXZRKGnP4MphfV1XNbkshEdpvxvvOSy/8=----ATTACHMENT:----OTEzMjM3NzgzMjM1MjAwNSA0NzgyMzk0NDIxNjQxNiAzNTk0NjE5MTM5MTIwNjA3