Completed
Push — develop ( 92b215...469605 )
by Nicolas
03:17
created

it_should_know_if_permissions_are_all_false()   B

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