ILIAS  trunk Revision v11.0_alpha-1713-gd8962da2f67
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
OnlineStatusFilterTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
24 use ilRbacReview;
26 
27 require_once __DIR__ . '/../../ContainerMock.php';
28 
29 class 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 }
const SYSTEM_ROLE_ID
Definition: constants.php:29