ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
OnlineStatusFilterTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
23use ILIAS\LegalDocuments\test\ContainerMock;
24use ilRbacReview;
25use PHPUnit\Framework\TestCase;
26
27require_once __DIR__ . '/../../ContainerMock.php';
28
29class OnlineStatusFilterTest extends TestCase
30{
31 use ContainerMock;
32
33 public function testConstruct(): void
34 {
35 $this->assertInstanceOf(OnlineStatusFilter::class, new OnlineStatusFilter(
36 $this->fail(...),
37 $this->mock(ilRbacReview::class)
38 ));
39 }
40
41 public function testInvoke(): void
42 {
43 if (!defined('SYSTEM_ROLE_ID')) {
44 define('SYSTEM_ROLE_ID', 14);
45 }
46 if (!defined('SYSTEM_USER_ID')) {
47 define('SYSTEM_USER_ID', 9);
48 }
49
50 $rbac = $this->mock(ilRbacReview::class);
51 $rbac->method('isAssigned')->willReturnCallback(function (int $user, int $role) {
52 $this->assertSame(SYSTEM_ROLE_ID, $role);
53 return $user === 7;
54 });
55
56 $instance = new OnlineStatusFilter(
57 fn($ids) => array_intersect($ids, [3, 4, 7]),
58 $rbac
59 );
60
61 $this->assertSame([1, 2, 5, 6, 7, 8], $instance([1, 2, 3, 4, 5, 6, 7, 8]));
62 }
63}
class ilRbacReview Contains Review functions of core Rbac.
const SYSTEM_ROLE_ID
Definition: constants.php:29