ILIAS  release_10 Revision v10.1-43-ga1241a92c2f
ilRepositoryTreeTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
7 
8 class ilRepositoryTreeTest extends TestCase
9 {
10  protected Container $dic;
11 
12  protected function setUp(): void
13  {
15  parent::setUp();
16  if (!defined("ROOT_FOLDER_ID")) {
17  define("ROOT_FOLDER_ID", 8);
18  }
19  if (!defined("ILIAS_LOG_ENABLED")) {
20  define("ILIAS_LOG_ENABLED", false);
21  }
22  if (!defined("ILIAS_LOG_DIR")) {
23  define("ILIAS_LOG_DIR", '/var/log');
24  }
25  if (!defined("ILIAS_LOG_FILE")) {
26  define("ILIAS_LOG_FILE", '/var/log/ilias.log');
27  }
28  }
29 
30  public function testTreeConstruct(): void
31  {
32  $tree = new ilTree(1);
33  $this->assertTrue($tree instanceof ilTree);
34  }
35 
36  public function testInitLanguage(): void
37  {
38  // no global user available
39  $tree = new ilTree(1);
40  $tree->initLangCode();
41  $tree_reflection = new ReflectionProperty($tree, 'lang_code');
42  $tree_reflection->setAccessible(true);
43  $this->assertEquals('en', $tree_reflection->getValue($tree));
44 
45  // user getCurrentLanguage() from session is empty
46  $tree = new ilTree(1);
47 
48  $user = $this->getMockBuilder(ilObjUser::class)
49  ->disableOriginalConstructor()
50  ->onlyMethods(['getCurrentLanguage'])
51  ->getMock();
52  $user->method('getCurrentLanguage')->willReturn('');
53  $this->setGlobalVariable('ilUser', $user);
54  $tree->initLangCode();
55  $tree_reflection = new ReflectionProperty($tree, 'lang_code');
56  $tree_reflection->setAccessible(true);
57  $this->assertEquals('en', $tree_reflection->getValue($tree));
58  }
59 
64  protected function setGlobalVariable(string $name, $value): void
65  {
66  global $DIC;
67 
68  $GLOBALS[$name] = $value;
69  unset($DIC[$name]);
70  $DIC[$name] = static function (\ILIAS\DI\Container $c) use ($value) {
71  return $value;
72  };
73  }
74 
75  protected function initRepositoryTreeDependencies(): void
76  {
77  $this->dic = new Container();
78  $GLOBALS['DIC'] = $this->dic;
79 
80  $this->setGlobalVariable('ilDB', $this->createMock(ilDBInterface::class));
81  $this->setGlobalVariable('ilAppEventHandler', $this->createMock(ilAppEventHandler::class));
82 
83  $logger = $this->getMockBuilder(ilLogger::class)
84  ->disableOriginalConstructor()
85  ->getMock();
86 
87  $logger_factory = $this->getMockBuilder(ilLoggerFactory::class)
88  ->disableOriginalConstructor()
89  ->onlyMethods(['getComponentLogger'])
90  ->getMock();
91  $logger_factory->method('getComponentLogger')->willReturn($logger);
92  $this->setGlobalVariable('ilLoggerFactory', $logger_factory);
93  }
94 }
$c
Definition: deliver.php:9
Customizing of pimple-DIC for ILIAS.
Definition: Container.php:35
$GLOBALS["DIC"]
Definition: wac.php:30
setGlobalVariable(string $name, $value)
global $DIC
Definition: shib_login.php:25