Passed
Push — master ( 048cfc...89074f )
by
unknown
12:32
created

AccountingDocumentTest::testGetPermissions()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 25
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 18
nc 1
nop 0
dl 0
loc 25
rs 9.6666
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace ApplicationTest\Model;
6
7
use Application\Model\AccountingDocument;
8
use Application\Model\User;
9
use PHPUnit\Framework\TestCase;
10
11
class AccountingDocumentTest extends TestCase
12
{
13
    public function tearDown(): void
14
    {
15
        User::setCurrent(null);
16
    }
17
18
    public function testGetPath(): void
19
    {
20
        $document = new AccountingDocument();
21
        $document->setFilename('invoice.pdf');
22
23
        self::assertSame('invoice.pdf', $document->getFilename());
24
        $appPath = realpath('.');
25
        $expected = $appPath . '/data/accounting/invoice.pdf';
26
        self::assertSame($expected, $document->getPath());
27
    }
28
29
    public function testGetPermissions(): void
30
    {
31
        $document = new AccountingDocument();
32
        $actual = $document->getPermissions();
33
        $expected = [
34
            'create' => false,
35
            'read' => false,
36
            'update' => false,
37
            'delete' => false,
38
        ];
39
        self::assertEquals($expected, $actual, 'should be able to get permissions as anonymous');
40
41
        // Make it the current user as creator
42
        $user = new User();
43
        User::setCurrent($user);
44
        $document->timestampCreation();
45
46
        $actual2 = $document->getPermissions();
47
        $expected2 = [
48
            'create' => true,
49
            'read' => true,
50
            'update' => true,
51
            'delete' => true,
52
        ];
53
        self::assertEquals($expected2, $actual2, 'should be able to get permissions as creator');
54
    }
55
}
56