Completed
Pull Request — master (#1)
by Rafał
14:18
created

SWPMultiTenancyExtensionTest   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 81
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 2
Bugs 0 Features 1
Metric Value
wmc 5
c 2
b 0
f 1
lcom 1
cbo 4
dl 0
loc 81
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
B testLoad() 0 38 1
A testLoadWhenPHPCRDisabled() 0 10 1
A createLoader() 0 4 1
A getConfig() 0 12 1
A createContainer() 0 4 1
1
<?php
2
3
/**
4
 * This file is part of the Superdesk Web Publisher MultiTenancy Bundle.
5
 *
6
 * Copyright 2016 Sourcefabric z.u. and contributors.
7
 *
8
 * For the full copyright and license information, please see the
9
 * AUTHORS and LICENSE files distributed with this source code.
10
 *
11
 * @copyright 2016 Sourcefabric z.ú.
12
 * @license http://www.superdesk.org/license
13
 */
14
namespace SWP\MultiTenancyBundle\Tests\DependencyInjection;
15
16
use Symfony\Component\DependencyInjection\ContainerBuilder;
17
use SWP\MultiTenancyBundle\DependencyInjection\SWPMultiTenancyExtension;
18
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
19
20
class SWPMultiTenancyExtensionTest extends \PHPUnit_Framework_TestCase
21
{
22
    /**
23
     * @covers SWP\MultiTenancyBundle\SWPMultiTenancyBundle
24
     * @covers SWP\MultiTenancyBundle\DependencyInjection\SWPMultiTenancyExtension::load
25
     * @covers SWP\MultiTenancyBundle\DependencyInjection\Configuration::getConfigTreeBuilder
26
     * @covers SWP\MultiTenancyBundle\DependencyInjection\SWPMultiTenancyExtension::loadPhpcr
27
     */
28
    public function testLoad()
29
    {
30
        $container = $this->createContainer();
31
        $loader = $this->createLoader();
32
        $config = $this->getConfig();
33
34
        $loader->load(array($config), $container);
35
36
        $this->assertTrue($container->getParameter('swp_multi_tenancy.backend_type_phpcr'));
37
        $this->assertEquals('/swp', $container->getParameter('swp_multi_tenancy.persistence.phpcr.basepath'));
38
        $this->assertEquals(
39
            'SWP\MultiTenancyBundle\Document\Site',
40
            $container->getParameter('swp_multi_tenancy.persistence.phpcr.site_document.class')
41
        );
42
43
        $this->assertEquals(
44
            'SWP\MultiTenancyBundle\Document\Page',
45
            $container->getParameter('swp_multi_tenancy.persistence.phpcr.document.class')
46
        );
47
48
        $this->assertEquals('content', $container->getParameter('swp_multi_tenancy.persistence.phpcr.content_basepath'));
49
        $this->assertEquals(
50
            'SWP\MultiTenancyBundle\Routing\TenantAwareRouter',
51
            $container->getParameter('swp_multi_tenancy.persistence.phpcr.router.class')
52
        );
53
54
        $this->assertEquals(
55
           array('routes1', 'routes2'),
56
           $container->getParameter('swp_multi_tenancy.persistence.phpcr.route_basepaths')
57
       );
58
59
        $this->assertEquals(
60
            array('routes1', 'routes2', 'content'),
61
            $container->getParameter('swp_multi_tenancy.persistence.phpcr.base_paths')
62
        );
63
64
        $this->assertTrue($container->hasParameter('swp_multi_tenancy.backend_type_phpcr'));
65
    }
66
67
    public function testLoadWhenPHPCRDisabled()
68
    {
69
        $container = $this->createContainer();
70
        $loader = $this->createLoader();
71
        $config = $this->getConfig();
72
        $config['persistence']['phpcr']['enabled'] = false;
73
        $loader->load(array($config), $container);
74
75
        $this->assertFalse($container->hasParameter('swp_multi_tenancy.backend_type_phpcr'));
76
    }
77
78
    protected function createLoader()
79
    {
80
        return new SWPMultiTenancyExtension();
81
    }
82
83
    protected function getConfig()
84
    {
85
        return array(
86
            'persistence' => array(
87
                'phpcr' => array(
88
                    'enabled' => true,
89
                    'content_basepath' => 'content',
90
                    'route_basepaths' => array('routes1', 'routes2'),
91
                ),
92
            ),
93
        );
94
    }
95
96
    protected function createContainer(array $data = array())
97
    {
98
        return new ContainerBuilder(new ParameterBag($data));
99
    }
100
}
101