ILIAS  trunk Revision v11.0_alpha-2645-g16283d3b3f8
UserLanguageTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
24 use ilObjUser;
32 
33 require_once __DIR__ . '/../ContainerMock.php';
34 
35 class UserLanguageTest extends TestCase
36 {
37  use ContainerMock;
38 
39  public function testConstruct(): void
40  {
41  $this->assertInstanceOf(UserLanguage::class, new UserLanguage(
42  $this->mock(CriterionContent::class),
43  $this->mock(UserLanguageDefinition::class),
44  $this->mock(UI::class)
45  ));
46  }
47 
48  public function testAsComponent(): void
49  {
50  $legacy = $this->mock(Legacy\Content::class);
51  $instance = new UserLanguage(
52  $this->mockTree(CriterionContent::class, ['arguments' => ['lng' => 'foo']]),
53  $this->mock(UserLanguageDefinition::class),
54  $this->mockTree(UI::class, ['create' => ['legacy' => ['content' => $legacy]]])
55  );
56 
57  $this->assertSame($legacy, $instance->asComponent());
58  }
59 
60  public function testEval(): void
61  {
62  $instance = new UserLanguage(
63  $this->mockTree(CriterionContent::class, ['arguments' => ['lng' => 'foo']]),
64  $this->mock(UserLanguageDefinition::class),
65  $this->mock(UI::class)
66  );
67 
68  $this->assertTrue($instance->eval($this->mockTree(ilObjUser::class, ['getLanguage' => 'foo'])));
69  }
70 
71  public function testDefinition(): void
72  {
73  $definition = $this->mock(UserLanguageDefinition::class);
74  $instance = new UserLanguage(
75  $this->mock(CriterionContent::class),
76  $definition,
77  $this->mock(UI::class)
78  );
79 
80  $this->assertSame($definition, $instance->definition());
81  }
82 
83  public function testKnownToNeverMatchWith(): void
84  {
85  $instance = new UserLanguage(
86  $this->mock(CriterionContent::class),
87  $this->mock(UserLanguageDefinition::class),
88  $this->mock(UI::class)
89  );
90 
91  $second = new UserLanguage(
92  $this->mock(CriterionContent::class),
93  $this->mock(UserLanguageDefinition::class),
94  $this->mock(UI::class)
95  );
96 
97  $this->assertTrue($instance->knownToNeverMatchWith($second));
98  $this->assertFalse($instance->knownToNeverMatchWith($this->mock(Condition::class)));
99  }
100 }