Passed
Push — master ( af3dcf...3709c1 )
by Petr
02:16
created

MenuEntriesTest   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 73
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 35
c 2
b 0
f 0
dl 0
loc 73
rs 10
wmc 6
1
<?php
2
3
namespace BasicTests;
4
5
6
use kalanis\kw_menu\Menu\Entry;
7
use kalanis\kw_menu\Menu\Menu;
8
9
10
class MenuEntriesTest extends \CommonTestClass
11
{
12
    /**
13
     * @param string $name
14
     * @param string $desc
15
     * @param string $id
16
     * @param int $position
17
     * @param bool $sub
18
     * @dataProvider contentProvider
19
     */
20
    public function testItem(string $name, string $desc, string $id, int $position, bool $sub): void
21
    {
22
        $lib = new Entry();
23
        $lib->setData($id, $name, $desc, $position, $sub);
24
        $this->assertEquals($name, $lib->getName());
25
        $this->assertEquals($desc, $lib->getDesc());
26
        $this->assertEquals($position, $lib->getPosition());
27
        $this->assertEquals($sub, $lib->canGoSub());
28
    }
29
30
    /**
31
     * @param string $file
32
     * @param string $name
33
     * @param string $title
34
     * @param int $counter
35
     * @param bool $unused
36
     * @dataProvider contentProvider
37
     */
38
    public function testHeader(string $file, string $name, string $title, int $counter, bool $unused): void
39
    {
40
        $lib = new Menu();
41
        $lib->setData($file, $name, $title, $counter);
42
        $this->assertEquals($file, $lib->getFile());
43
        $this->assertEquals($name, $lib->getName());
44
        $this->assertEquals($title, $lib->getTitle());
45
        $this->assertEquals($counter, $lib->getDisplayCount());
46
        $lib->clear();
47
    }
48
49
    public function testHeaderItems(): void
50
    {
51
        $lib = new Menu();
52
        $lib->setData('abc', 'def', 'ghi', 11);
53
        $this->assertEmpty($lib->getEntries());
54
        foreach ($this->contentProvider() as list($name, $desc, $id, $position, $sub)) {
55
            $entry = new Entry();
56
            $entry->setData($id, $name, $desc, $position, $sub);
57
            $lib->addItem($entry);
58
        }
59
        $this->assertNotEmpty($lib->getEntries());
60
    }
61
62
    public function testSubMenu(): void
63
    {
64
        $entry = new Entry();
65
        $entry->setData('jkl', 'mno', 'pqr', 3, true);
66
67
        $this->assertEquals(3, $entry->getPosition());
68
        $entry->setPosition(1);
69
        $this->assertEquals(1, $entry->getPosition());
70
        $this->assertEmpty($entry->getSubmenu());
71
72
        $lib = new Menu();
73
        $lib->setData('abc', 'def', 'ghi', 11);
74
        $entry->addSubmenu($lib);
75
        $this->assertNotEmpty($entry->getSubmenu());
76
    }
77
78
    public function contentProvider(): array
79
    {
80
        return [
81
            ['abc', 'def', 'ghi', 2, false],
82
            ['jkl', 'mno', 'pqr', 3, true],
83
        ];
84
    }
85
}
86