ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
RoleTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
31 use ilRbacReview;
32 use ilObjUser;
33 
34 require_once __DIR__ . '/../ContainerMock.php';
35 
36 class RoleTest extends TestCase
37 {
38  use ContainerMock;
39 
40  public function testConstruct(): void
41  {
42  $this->assertInstanceOf(Role::class, new Role(
43  $this->mock(CriterionContent::class),
44  $this->mock(RoleDefinition::class),
45  $this->mock(UIFactory::class),
46  $this->mock(ilRbacReview::class)
47  ));
48  }
49 
50  public function testAsComponent(): void
51  {
52  $legacy = $this->mock(Legacy::class);
53  $this->assertSame($legacy, (new Role(
54  $this->mockTree(CriterionContent::class, ['arguments' => ['role_id' => 78]]),
55  $this->mock(RoleDefinition::class),
56  $this->mockTree(UIFactory::class, ['legacy' => $legacy]),
57  $this->mock(ilRbacReview::class)
58  ))->asComponent());
59  }
60 
61  public function testEval(): void
62  {
63  $rbac = $this->mockMethod(ilRbacReview::class, 'isAssigned', [45, 78], true);
64 
65  $instance = new Role(
66  $this->mockTree(CriterionContent::class, ['arguments' => ['role_id' => 78]]),
67  $this->mock(RoleDefinition::class),
68  $this->mock(UIFactory::class),
69  $rbac
70  );
71 
72  $this->assertTrue($instance->eval($this->mockTree(ilObjUser::class, ['getId' => 45])));
73  }
74 
75  public function testDefinition(): void
76  {
77  $definition = $this->mock(RoleDefinition::class);
78 
79  $instance = new Role(
80  $this->mock(CriterionContent::class),
81  $definition,
82  $this->mock(UIFactory::class),
83  $this->mock(ilRbacReview::class)
84  );
85 
86  $this->assertSame($definition, $instance->definition());
87  }
88 
89  public function testKnownToNeverMatchWith(): void
90  {
91  $instance = new Role(
92  $this->mock(CriterionContent::class),
93  $this->mock(RoleDefinition::class),
94  $this->mock(UIFactory::class),
95  $this->mock(ilRbacReview::class)
96  );
97 
98  $this->assertFalse($instance->knownToNeverMatchWith($this->mock(Condition::class)));
99  }
100 }