it_should_clean_permissions()   B
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 24
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 24
rs 8.9714
c 1
b 0
f 0
cc 1
eloc 16
nc 1
nop 0
1
<?php
2
3
namespace Modules\User\Tests\Permissions;
4
5
use Mockery;
6
use Modules\Core\Tests\BaseTestCase;
7
use Modules\User\Permissions\PermissionManager;
8
9
class PermissionManagerTest extends BaseTestCase
10
{
11
    /**
12
     * @test
13
     */
14
    public function it_should_know_if_permissions_are_all_false()
15
    {
16
        $modules = $this->getModulesRepositoryMock();
17
        $this->app->instance('modules', $modules);
18
19
        $manager = new PermissionManager();
20
21
        $allFalsePermissions = $manager->permissionsAreAllFalse([
22
            'permission1' => 'false',
23
            'permission2' => 'false',
24
            'permission3' => 'false',
25
            'permission4' => 'false',
26
        ]);
27
28
        $mixedPermissions = $manager->permissionsAreAllFalse([
29
            'permission1' => 'true',
30
            'permission2' => 'false',
31
            'permission3' => 'false',
32
            'permission4' => 'true',
33
        ]);
34
35
        $this->assertSame(true, $allFalsePermissions);
36
        $this->assertSame(false, $mixedPermissions);
37
    }
38
39
    /**
40
     * @test
41
     */
42
    public function it_should_clean_permissions()
43
    {
44
        $input = [
45
            'permission1' => 'true',
46
            'permission2' => 'true',
47
            'permission3' => 'false',
48
            'permission4' => 'false',
49
            'permission5' => 'true'
50
        ];
51
52
        $expected = [
53
            'permission1' => true,
54
            'permission2' => true,
55
            'permission3' => false,
56
            'permission4' => false,
57
            'permission5' => true
58
        ];
59
60
        $manager = new PermissionManager();
61
62
        $actual = $manager->clean($input);
63
64
        $this->assertSame($expected, $actual, "The PermissionManager should clean the permissions and fix their states.");
65
    }
66
67
    protected function getModulesRepositoryMock()
68
    {
69
        return Mockery::mock(Repository::class);
70
    }
71
}
72