Test Failed
Push — main ( 5da9e4...74d919 )
by Michael
09:18
created

TestEventMenu   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 14
c 0
b 0
f 0
dl 0
loc 29
rs 10
wmc 2
1
<?php
2
3
namespace Braunstetter\MenuBundle\Test\app\src\Menu;
4
5
use Braunstetter\MenuBundle\Events\MenuEvent;
6
use Braunstetter\MenuBundle\Factory\MenuItem;
7
use Braunstetter\MenuBundle\Menu;
8
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
9
use Traversable;
10
11
class TestEventMenu extends Menu
12
{
13
14
    private EventDispatcherInterface $eventDispatcher;
15
16
    public function __construct(EventDispatcherInterface $eventDispatcher)
17
    {
18
        parent::__construct();
19
20
        $this->eventDispatcher = $eventDispatcher;
21
    }
22
23
    public function define(): Traversable
24
    {
25
26
        $items = function () {
27
            yield MenuItem::system('System', 'test', [], 'images/svg/system.svg')
28
                ->setRouteParameter('name', 'test_menu')
29
                ->setChildren(function () {
30
                    yield MenuItem::section('Section', 'test_one', [], 'images/svg/thunder.svg')->setChildren(function () {
31
                        yield MenuItem::linkToRoute('Site', 'test_two', [], '@Menu/svg/default_folder.svg');
32
                        yield MenuItem::linkToRoute('Dashboard', 'test_three');
33
                    });
34
                });
35
        };
36
37
        $testMenuEvent = new MenuEvent($items());
38
        $this->eventDispatcher->dispatch($testMenuEvent, 'test.even_test');
39
        yield from $testMenuEvent->items;
40
    }
41
}