testDefaultNamingStrategy()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 22
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 16
c 1
b 0
f 0
dl 0
loc 22
rs 9.7333
cc 1
nc 1
nop 0
1
<?php
2
3
namespace Sil\RouteSecurityBundle\Tests\DependencyInjection\Compiler;
4
5
use PHPUnit\Framework\TestCase;
6
use Sil\RouteSecurityBundle\DependencyInjection\Compiler\DynamicServiceCompilerPass;
7
use Sil\RouteSecurityBundle\Interfaces\NamingStrategyInterface;
8
use Sil\RouteSecurityBundle\Role\RouteToRoleConverter;
9
use Symfony\Component\DependencyInjection\ContainerBuilder;
10
use Symfony\Component\DependencyInjection\Reference;
11
12
class DynamicServiceCompilerPassTest extends TestCase
13
{
14
    public function testDefaultNamingStrategy()
15
    {
16
        $container = new ContainerBuilder();
17
        $container->setParameter('sil_route_security.naming_strategy', null);
18
        $container->register('sil_route_security.route_to_role_converter', RouteToRoleConverter::class);
19
        $container->register('router', null);
20
        $container
21
            ->register('sil_route_security.access_control')
22
            ->addArgument(new Reference('router'))
23
            ->addArgument(new Reference('sil_route_security.route_to_role_converter'))
24
        ;
25
        $container
26
            ->register('sil_route_security.route_security_tools', null)
27
            ->addArgument(new Reference('sil_route_security.access_control'))
28
            ->addArgument(new Reference('sil_route_security.route_to_role_converter'))
29
        ;
30
31
        $compiler = new DynamicServiceCompilerPass();
32
        $compiler->process($container);
33
34
        $this->assertEquals('sil_route_security.route_to_role_converter', $container->getDefinition('sil_route_security.access_control')->getArgument(1)->__toString());
35
        $this->assertEquals('sil_route_security.route_to_role_converter', $container->getDefinition('sil_route_security.route_security_tools')->getArgument(1)->__toString());
36
    }
37
38
    public function testOverridesNamingStrategy()
39
    {
40
        $container = new ContainerBuilder();
41
        $container->setParameter('sil_route_security.naming_strategy', 'my_own_naming_strategy');
42
        $container->register('my_own_naming_strategy', NamingStrategyInterface::class);
43
        $container->register('sil_route_security.route_to_role_converter', RouteToRoleConverter::class);
44
        $container->register('router', null);
45
        $container
46
            ->register('sil_route_security.access_control')
47
            ->addArgument(new Reference('router'))
48
            ->addArgument(new Reference('sil_route_security.route_to_role_converter'))
49
        ;
50
        $container
51
            ->register('sil_route_security.route_security_tools', null)
52
            ->addArgument(new Reference('sil_route_security.access_control'))
53
            ->addArgument(new Reference('sil_route_security.route_to_role_converter'))
54
        ;
55
56
        $compiler = new DynamicServiceCompilerPass();
57
        $compiler->process($container);
58
59
        $this->assertEquals('my_own_naming_strategy', $container->getDefinition('sil_route_security.access_control')->getArgument(1)->__toString());
60
        $this->assertEquals('my_own_naming_strategy', $container->getDefinition('sil_route_security.route_security_tools')->getArgument(1)->__toString());
61
    }
62
}
63