ILIAS  trunk Revision v13.0_alpha-62-g3b72d83f2e5
ilLanguageMetricsCollectedObjectiveTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
21use ILIAS\Setup;
22use PHPUnit\Framework\TestCase;
23
29{
30 private function collect(ilSetupLanguage $setup_language, ?ilDBInterface $db): void
31 {
33 $this->createStub(Setup\Metrics\Storage::class),
34 $setup_language
35 );
36 $environment = new Setup\ArrayEnvironment([]);
37 if ($db !== null) {
38 $environment = $environment->withResource(Setup\Environment::RESOURCE_DATABASE, $db);
39 }
40
41 (new ReflectionMethod($objective, 'collectFrom'))
42 ->invoke($objective, $environment, $this->createStub(Setup\Metrics\Storage::class));
43 }
44
46 {
47 $db = $this->createStub(ilDBInterface::class);
48 $calls = [];
49 $setup_language = $this->createMock(ilSetupLanguage::class);
50 $setup_language->expects(self::once())->method('setDbHandler')->with($db)
51 ->willReturnCallback(static function () use (&$calls): bool {
52 $calls[] = 'setDbHandler';
53 return true;
54 });
55 $setup_language->method('getLocalLanguages')->willReturnCallback(static function () use (&$calls): array {
56 $calls[] = 'getLocalLanguages';
57 return [];
58 });
59 $setup_language->method('getInstalledLanguages')->willReturnCallback(static function () use (&$calls): array {
60 $calls[] = 'getInstalledLanguages';
61 return [];
62 });
63
64 $this->collect($setup_language, $db);
65
66 self::assertSame('setDbHandler', $calls[0] ?? null);
67 self::assertContains('getInstalledLanguages', $calls);
68 }
69
70 public function testGlobalsAreNotChanged(): void
71 {
73 $GLOBALS['DIC'] = $dic;
74 unset($GLOBALS['ilDB']);
75
76 $setup_language = $this->createStub(ilSetupLanguage::class);
77 $setup_language->method('getLocalLanguages')->willReturn([]);
78 $setup_language->method('getInstalledLanguages')->willReturn([]);
79
80 $this->collect($setup_language, $this->createStub(ilDBInterface::class));
81
82 self::assertSame($dic, $GLOBALS['DIC']);
83 self::assertFalse(isset($dic['ilDB']));
84 self::assertArrayNotHasKey('ilDB', $GLOBALS);
85 }
86
88 {
89 $setup_language = $this->createMock(ilSetupLanguage::class);
90 $setup_language->expects(self::never())->method('setDbHandler');
91 $setup_language->expects(self::never())->method('getInstalledLanguages');
92
93 $this->collect($setup_language, null);
94 }
95}
Customizing of pimple-DIC for ILIAS.
Definition: Container.php:38
collectFrom() hands the Setup database to ilSetupLanguage via setDbHandler() before reading,...
collect(ilSetupLanguage $setup_language, ?ilDBInterface $db)
language handling for setup
Interface ilDBInterface.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$GLOBALS["DIC"]
Definition: wac.php:66