ScheduleBuilderKernelPassTest   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 50
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 3
eloc 13
c 2
b 0
f 0
dl 0
loc 50
rs 10

9 Methods

Rating   Name   Duplication   Size   Complexity  
A hp$0 ➔ adds_tag_if_kernel_implement_interface() 0 13 1
A hp$1 ➔ does_not_add_tag_if_kernel_does_not_implement_interface() 0 10 1
does_not_add_tag_if_kernel_does_not_implement_interface() 0 10 ?
adds_tag_if_kernel_implement_interface() 0 13 ?
A hp$0 ➔ buildSchedule() 0 2 1
does_not_add_tag_if_kernel_class_is_null() 0 7 ?
A hp$1 ➔ does_not_add_tag_if_kernel_class_is_null() 0 7 1
registerCompilerPass() 0 3 ?
A hp$1 ➔ registerCompilerPass() 0 3 1
1
<?php
2
3
namespace Zenstruck\ScheduleBundle\Tests\DependencyInjection\Compiler;
4
5
use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractCompilerPassTestCase;
6
use Symfony\Component\DependencyInjection\ContainerBuilder;
7
use Symfony\Component\DependencyInjection\Definition;
8
use Zenstruck\ScheduleBundle\DependencyInjection\Compiler\ScheduleBuilderKernelPass;
9
use Zenstruck\ScheduleBundle\Schedule;
10
use Zenstruck\ScheduleBundle\Schedule\ScheduleBuilder;
11
12
/**
13
 * @author Kevin Bond <[email protected]>
14
 */
15
final class ScheduleBuilderKernelPassTest extends AbstractCompilerPassTestCase
16
{
17
    /**
18
     * @test
19
     */
20
    public function adds_tag_if_kernel_implement_interface()
21
    {
22
        $class = new class() implements ScheduleBuilder {
23
            public function buildSchedule(Schedule $schedule): void
24
            {
25
            }
26
        };
27
28
        $this->setDefinition('kernel', new Definition(\get_class($class)));
29
30
        $this->compile();
31
32
        $this->assertContainerBuilderHasServiceDefinitionWithTag('kernel', 'schedule.builder');
33
    }
34
35
    /**
36
     * @test
37
     */
38
    public function does_not_add_tag_if_kernel_does_not_implement_interface()
39
    {
40
        $class = new class() {
41
        };
42
43
        $this->setDefinition('kernel', new Definition(\get_class($class)));
44
45
        $this->compile();
46
47
        $this->assertSame([], $this->container->getDefinition('kernel')->getTags());
48
    }
49
50
    /**
51
     * @test
52
     */
53
    public function does_not_add_tag_if_kernel_class_is_null()
54
    {
55
        $this->setDefinition('kernel', new Definition());
56
57
        $this->compile();
58
59
        $this->assertSame([], $this->container->getDefinition('kernel')->getTags());
60
    }
61
62
    protected function registerCompilerPass(ContainerBuilder $container): void
63
    {
64
        $container->addCompilerPass(new ScheduleBuilderKernelPass());
65
    }
66
}
67