ILIAS  trunk Revision v13.0_alpha-62-g3b72d83f2e5
RBACServicesLegacyProxyTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
21namespace ILIAS\DI;
22
23use PHPUnit\Framework\TestCase;
24
28final class RBACServicesLegacyProxyTest extends TestCase
29{
30 public function testARegisteredServiceIsPreferred(): void
31 {
32 $container = new Container();
33 $services = new RBACServices(
34 $this->createMock(\ilRbacReview::class),
35 $this->createMock(\ilRbacSystem::class),
36 $this->createMock(\ilRbacAdmin::class),
37 );
38 $container[RBACServices::class] = static fn(): RBACServices => $services;
39
40 $this->assertSame($services, $container->rbac());
41 }
42
44 {
45 $container = new Container();
46 $review = $this->createMock(\ilRbacReview::class);
47 $system = $this->createMock(\ilRbacSystem::class);
48 $admin = $this->createMock(\ilRbacAdmin::class);
49 $container['rbacreview'] = static fn(): \ilRbacReview => $review;
50 $container['rbacsystem'] = static fn(): \ilRbacSystem => $system;
51 $container['rbacadmin'] = static fn(): \ilRbacAdmin => $admin;
52
53 $this->assertInstanceOf(RBACServicesLegacyProxy::class, $container->rbac());
54 $this->assertSame($review, $container->rbac()->review());
55 $this->assertSame($system, $container->rbac()->system());
56 $this->assertSame($admin, $container->rbac()->admin());
57 }
58
64 {
65 $container = new Container();
66 $system = $this->createMock(\ilRbacSystem::class);
67 $container['rbacsystem'] = static fn(): \ilRbacSystem => $system;
68
69 $this->assertSame($system, $container->rbac()->system());
70 }
71
76 public function testEveryServiceGetterIsOverridden(): void
77 {
78 $overridden = array_map(
79 static fn(\ReflectionMethod $method): string => $method->getName(),
80 (new \ReflectionClass(RBACServicesLegacyProxy::class))->getMethods(\ReflectionMethod::IS_PUBLIC)
81 );
82
83 foreach ((new \ReflectionClass(RBACServices::class))->getMethods(\ReflectionMethod::IS_PUBLIC) as $method) {
84 if ($method->isConstructor()) {
85 continue;
86 }
87 $this->assertContains($method->getName(), $overridden);
88 }
89 }
90}
Customizing of pimple-DIC for ILIAS.
Definition: Container.php:38
testEveryServiceGetterIsOverridden()
Every getter of RBACServices has to be overridden, since the proxy holds no services of its own.
testOnlyTheRequestedOffsetIsResolved()
Tests commonly register only the offset they are about, so asking for one service must not resolve th...
Class ilRbacAdmin Core functions for role based access control.
class ilRbacReview Contains Review functions of core Rbac.
class ilRbacSystem system function like checkAccess, addActiveRole ... Supporting system functions ar...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Definition: Container.php:19
$container
@noRector
Definition: wac.php:39