Failed Conditions
Pull Request — master (#13)
by Adrien
05:33 queued 02:11
created

MultipleRolesTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 25
c 1
b 0
f 0
dl 0
loc 39
rs 10
wmc 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testGetRoleId() 0 6 1
A testEverything() 0 29 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace EcodevTests\Felix\Acl;
6
7
use Ecodev\Felix\Acl\MultipleRoles;
8
use PHPUnit\Framework\TestCase;
9
10
class MultipleRolesTest extends TestCase
11
{
12
    public function testEverything(): void
13
    {
14
        $roles = new MultipleRoles();
15
        self::assertSame([], $roles->getRoles(), 'must be empty');
16
        self::assertSame('[]', (string) $roles);
17
18
        $roles->addRole('writer');
19
        self::assertSame(['writer'], $roles->getRoles(), 'must be added');
20
        self::assertTrue($roles->has('writer'), 'must be existing');
21
        self::assertFalse($roles->has('foo'), 'must not be existing');
22
        self::assertSame('[writer]', (string) $roles);
23
24
        $roles->addRole('writer');
25
        self::assertSame('[writer]', (string) $roles, 'do not duplicate roles');
26
27
        $roles2 = new MultipleRoles(['anonymous', 'admin']);
28
        self::assertSame(['admin', 'anonymous'], $roles2->getRoles(), 'must be created with roles');
29
        self::assertSame('[admin, anonymous]', (string) $roles2);
30
31
        foreach ($roles2->getRoles() as $role) {
32
            $roles->addRole($role);
33
        }
34
        self::assertSame(['admin', 'anonymous', 'writer'], $roles->getRoles(), 'must be merged');
35
        self::assertSame('[admin, anonymous, writer]', (string) $roles);
36
37
        $roles2->addRole('contact');
38
        $roles2->addRole('reader');
39
        self::assertSame(['admin', 'anonymous', 'contact', 'reader'], $roles2->getRoles(), 'array can be added');
40
        self::assertSame('[admin, anonymous, contact, reader]', (string) $roles2);
41
    }
42
43
    public function testGetRoleId(): void
44
    {
45
        $role = new MultipleRoles();
46
47
        $this->expectExceptionMessage('This should never be called. If it is, then it means this class is not used correctly');
48
        $role->getRoleId();
49
    }
50
}
51