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

AccountingDocumentTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 26
dl 0
loc 43
rs 10
c 0
b 0
f 0
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testGetPermissions() 0 25 1
A tearDown() 0 3 1
A testGetPath() 0 9 1
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