Completed
Push — master ( a2ed6a...66582b )
by André
23:40 queued 05:20
created

EzSystemsPlatformInstallerBundleTest::testBuild()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 16
rs 9.7333
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * @copyright Copyright (C) eZ Systems AS. All rights reserved.
5
 * @license For full copyright and license information view LICENSE file distributed with this source code.
6
 */
7
declare(strict_types=1);
8
9
namespace EzSystems\PlatformInstallerBundleTests;
10
11
use EzSystems\DoctrineSchemaBundle\DependencyInjection\DoctrineSchemaExtension;
12
use EzSystems\PlatformInstallerBundle\DependencyInjection\Compiler\InstallerTagPass;
13
use EzSystems\PlatformInstallerBundle\EzSystemsPlatformInstallerBundle;
14
use PHPUnit\Framework\TestCase;
15
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
16
use Symfony\Component\DependencyInjection\ContainerBuilder;
17
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
18
19
class EzSystemsPlatformInstallerBundleTest extends TestCase
20
{
21
    /** @var \EzSystems\PlatformInstallerBundle\EzSystemsPlatformInstallerBundle */
22
    private $bundle;
23
24
    public function setUp(): void
25
    {
26
        $this->bundle = new EzSystemsPlatformInstallerBundle();
27
    }
28
29
    /**
30
     * @covers \EzSystems\PlatformInstallerBundle\EzSystemsPlatformInstallerBundle::build
31
     */
32
    public function testBuild(): void
33
    {
34
        $container = new ContainerBuilder();
35
        $container->registerExtension(new DoctrineSchemaExtension());
36
        $this->bundle->build($container);
37
38
        // check if InstallerTagPass was added
39
        self::assertNotEmpty(
40
            array_filter(
41
                $container->getCompilerPassConfig()->getPasses(),
42
                function (CompilerPassInterface $compilerPass) {
43
                    return $compilerPass instanceof InstallerTagPass;
44
                }
45
            )
46
        );
47
    }
48
49
    /**
50
     * @covers \EzSystems\PlatformInstallerBundle\EzSystemsPlatformInstallerBundle::build
51
     */
52
    public function testBuildFailsWithoutDoctrineSchemaBundle(): void
53
    {
54
        $container = new ContainerBuilder();
55
56
        $this->expectException(RuntimeException::class);
57
        $this->expectExceptionMessage('eZ Platform Installer requires Doctrine Schema Bundle');
58
        $this->bundle->build($container);
59
    }
60
}
61