JavascriptProviderCompilerPassTest   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 61
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
eloc 23
dl 0
loc 61
rs 10
c 1
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testProcess() 0 27 1
A setUp() 0 8 1
1
<?php
2
3
/*
4
 * This file is part of the core-bundle package.
5
 *
6
 * (c) 2022 WEBEWEB
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace WBW\Bundle\CoreBundle\Tests\DependencyInjection\Compiler;
13
14
use WBW\Bundle\CoreBundle\DependencyInjection\Compiler\JavascriptProviderCompilerPass;
15
use WBW\Bundle\CoreBundle\Provider\JavascriptProvider;
16
use WBW\Bundle\CoreBundle\Tests\AbstractTestCase;
17
use WBW\Library\Symfony\Manager\JavascriptManager;
18
use WBW\Library\Symfony\Provider\JavascriptProviderInterface;
19
20
/**
21
 * Javascript provider compiler pass test.
22
 *
23
 * @author webeweb <https://github.com/webeweb>
24
 * @package WBW\Bundle\CoreBundle\Tests\DependencyInjection\Compiler
25
 */
26
class JavascriptProviderCompilerPassTest extends AbstractTestCase {
27
28
    /**
29
     * Javascript manager.
30
     *
31
     * @var string
32
     */
33
    private $javascriptManager;
34
35
    /**
36
     * Javascript provider.
37
     *
38
     * @var string
39
     */
40
    private $javascriptProvider;
41
42
    /**
43
     * {@inheritDoc}
44
     */
45
    protected function setUp(): void {
46
        parent::setUp();
47
48
        // Set a Javascript manager mock.
49
        $this->javascriptManager = JavascriptManager::class;
50
51
        // Set a Javascript provider mock.
52
        $this->javascriptProvider = JavascriptProviderInterface::class;
53
    }
54
55
    /**
56
     * Test process()
57
     *
58
     * @return void
59
     */
60
    public function testProcess(): void {
61
62
        $obj = new JavascriptProviderCompilerPass();
63
64
        $obj->process($this->containerBuilder);
65
        $this->assertFalse($this->containerBuilder->hasDefinition(JavascriptManager::SERVICE_NAME));
66
        $this->assertFalse($this->containerBuilder->hasDefinition(JavascriptProvider::SERVICE_NAME));
67
68
        // Register the Javascript manager mock.
69
        $this->containerBuilder->register(JavascriptManager::SERVICE_NAME, $this->javascriptManager);
70
71
        $obj->process($this->containerBuilder);
72
        $this->assertTrue($this->containerBuilder->hasDefinition(JavascriptManager::SERVICE_NAME));
73
        $this->assertFalse($this->containerBuilder->hasDefinition(JavascriptProvider::SERVICE_NAME));
74
        $this->assertFalse($this->containerBuilder->getDefinition(JavascriptManager::SERVICE_NAME)->hasMethodCall("addProvider"));
75
76
        // Register the Javascript provider.
77
        $this->containerBuilder->register(JavascriptProvider::SERVICE_NAME, $this->javascriptProvider)->addTag(JavascriptProviderInterface::JAVASCRIPT_PROVIDER_TAG_NAME);
78
79
        $this->assertTrue($this->containerBuilder->hasDefinition(JavascriptManager::SERVICE_NAME));
80
        $this->assertTrue($this->containerBuilder->hasDefinition(JavascriptProvider::SERVICE_NAME));
81
        $this->assertFalse($this->containerBuilder->getDefinition(JavascriptManager::SERVICE_NAME)->hasMethodCall("addProvider"));
82
83
        $obj->process($this->containerBuilder);
84
        $this->assertTrue($this->containerBuilder->hasDefinition(JavascriptManager::SERVICE_NAME));
85
        $this->assertTrue($this->containerBuilder->hasDefinition(JavascriptProvider::SERVICE_NAME));
86
        $this->assertTrue($this->containerBuilder->getDefinition(JavascriptManager::SERVICE_NAME)->hasMethodCall("addProvider"));
87
    }
88
}
89