Completed
Push — master ( 4ccc94...34cde4 )
by Nicolas
08:38
created

MenuItemTest::it_can_make_an_empty_menu_item()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 6
rs 9.4285
cc 1
eloc 3
nc 1
nop 0
1
<?php
2
3
namespace Nwidart\Menus\Tests;
4
5
use Nwidart\Menus\MenuItem;
6
7
class MenuItemTest extends BaseTestCase
0 ignored issues
show
Bug introduced by
There is at least one abstract method in this class. Maybe declare it as abstract, or implement the remaining methods: artisan, be, call, seed
Loading history...
8
{
9
    /** @test */
10
    public function it_can_make_an_empty_menu_item()
11
    {
12
        $menuItem = MenuItem::make([]);
13
14
        $this->assertInstanceOf(MenuItem::class, $menuItem);
15
    }
16
17
    /** @test */
18
    public function it_can_set_properties_on_menu_item()
19
    {
20
        $properties = [
21
            'url' => 'my.url',
22
            'route' => 'my.route',
23
            'title' => 'My Menu item',
24
            'name' => 'my-menu-item',
25
            'icon' => 'fa fa-user',
26
            'parent' => 1,
27
            'attributes' => [],
28
            'active' => false,
29
            'order' => 1,
30
        ];
31
        $menuItem = MenuItem::make($properties);
32
33
        $this->assertEquals($properties, $menuItem->getProperties());
34
    }
35
36
    /** @test */
37
    public function it_can_fill_a_menu_item_with_allowed_properties()
38
    {
39
        $properties = [
40
            'url' => 'my.url',
41
            'route' => 'my.route',
42
            'title' => 'My Menu item',
43
            'name' => 'my-menu-item',
44
            'icon' => 'fa fa-user',
45
            'parent' => 1,
46
            'attributes' => [],
47
            'active' => false,
48
            'order' => 1,
49
        ];
50
        $menuItem = MenuItem::make($properties);
51
52
        $this->assertEquals('my.url', $menuItem->url);
53
        $this->assertEquals('my.route', $menuItem->route);
54
        $this->assertEquals('My Menu item', $menuItem->title);
55
        $this->assertEquals('my-menu-item', $menuItem->name);
56
        $this->assertEquals('fa fa-user', $menuItem->icon);
57
        $this->assertSame(1, $menuItem->parent);
58
        $this->assertSame([], $menuItem->attributes);
59
        $this->assertFalse($menuItem->active);
60
        $this->assertSame(1, $menuItem->order);
61
    }
62
63
    /** @test */
64
    public function it_can_set_icon_via_attributes()
65
    {
66
        $menuItem = MenuItem::make(['attributes' => ['icon' => 'fa fa-user']]);
67
68
        $this->assertEquals('fa fa-user', $menuItem->icon);
69
    }
70
}
71