Passed
Push — master ( 4646d2...f77865 )
by Kevin
02:03
created

php$1 ➔ does_not_add_tag_if_kernel_class_is_null()   A

Complexity

Conditions 1

Size

Total Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 7
rs 10
cc 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