Files
FOSAdvancedEncoderBundle/Tests/DependencyInjection/Compiler/SecurityEncoderFactoryPassTest.php
Christophe Coevoet 081a3a4605 Improved code coverage
2011-11-29 15:56:58 +01:00

59 lines
2.2 KiB
PHP

<?php
/*
* This file is part of the FOSAdvancedEncoderBundle package.
*
* (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FOS\AdvancedEncoderBundle\Tests\DependencyInjection\Compiler;
use FOS\AdvancedEncoderBundle\DependencyInjection\Compiler\SecurityEncoderFactoryPass;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Definition;
class SecurityEncoderFactoryPassTest extends \PHPUnit_Framework_TestCase
{
private $container;
private $pass;
public function setUp()
{
$this->container = new ContainerBuilder();
$this->pass = new SecurityEncoderFactoryPass();
}
public function testShouldComposeAlias()
{
$this->container->setDefinition('security.encoder_factory.real', new Definition());
$this->container->setAlias('security.encoder_factory', 'security.encoder_factory.real');
$this->pass->process($this->container);
$this->assertServiceHasAlias('security.encoder_factory.real', 'fos_advanced_encoder.encoder_factory.parent');
$this->assertFalse($this->container->getAlias('fos_advanced_encoder.encoder_factory.parent')->isPublic());
$this->assertServiceHasAlias('fos_advanced_encoder.encoder_factory', 'security.encoder_factory');
}
public function testShouldComposeDefinition()
{
$this->container->setDefinition('security.encoder_factory', $originalDefinition = new Definition());
$this->pass->process($this->container);
$newDefinition = $this->container->getDefinition('fos_advanced_encoder.encoder_factory.parent');
$this->assertFalse($newDefinition->isPublic());
$this->assertSame($originalDefinition, $newDefinition);
$this->assertServiceHasAlias('fos_advanced_encoder.encoder_factory', 'security.encoder_factory');
}
private function assertServiceHasAlias($serviceId, $aliasId)
{
$this->assertEquals($serviceId, (string) $this->container->getAlias($aliasId), sprintf('Service "%s" has alias "%s"', $serviceId, $aliasId));
}
}