Passed
Push — main ( e317b4...c36351 )
by Peter
08:15
created

UserProviderTest::testSavePolicyReturnsTrue()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
eloc 3
c 1
b 1
f 0
dl 0
loc 7
rs 10
cc 1
nc 1
nop 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace AbterPhp\Admin\Authorization;
6
7
use AbterPhp\Admin\Databases\Queries\UserAuthLoader;
8
use Casbin\Exceptions\CasbinException;
9
use Casbin\Model\Model;
10
use PHPUnit\Framework\MockObject\MockObject;
11
use PHPUnit\Framework\TestCase;
12
13
class UserProviderTest extends TestCase
14
{
15
    /** @var UserProvider - System Under Test */
16
    protected UserProvider $sut;
17
18
    /** @var MockObject|UserAuthLoader */
19
    protected $authLoaderMock;
20
21
    public function setUp(): void
22
    {
23
        $this->authLoaderMock = $this->createMock(UserAuthLoader::class);
24
25
        $this->sut = new UserProvider($this->authLoaderMock);
26
    }
27
28
    public function testLoadPolicyAddsLoadedDataToModel()
29
    {
30
        $v00 = 'foo';
31
        $v01 = 'bar';
32
        $v10 = 'baz';
33
        $v11 = 'quix';
34
        $loadedData = [
35
            ['v0' => $v00, 'v1' => $v01],
36
            ['v0' => $v10, 'v1' => $v11],
37
        ];
38
39
        $policyContainer = new \stdClass();
40
        $policyContainer->policy = [];
41
42
        $modelMock = $this->getMockBuilder(Model::class)
43
            ->disableOriginalConstructor()
44
            ->getMock();
45
        $modelMock->expects($this->exactly(2))->method('addPolicy');
46
47
        $this->authLoaderMock
48
            ->expects($this->once())
49
            ->method('loadAll')
50
            ->willReturn($loadedData);
51
52
        $this->sut->loadPolicy($modelMock);
53
    }
54
55
    public function testRemoveFilterPolicyThrowsCasbinException()
56
    {
57
        $this->expectException(CasbinException::class);
58
59
        $this->sut->removeFilteredPolicy('foo', 'bar', 0);
60
    }
61
}
62