ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
ilTestBaseTestCase.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
29 use ILIAS\Refinery\Random\Group as RandomGroup;
31 
36 class ilTestBaseTestCase extends TestCase
37 {
38  protected ?Container $dic = null;
39 
43  protected function setUp(): void
44  {
45  global $DIC;
46 
47  $this->dic = is_object($DIC) ? clone $DIC : $DIC;
48 
49  $DIC = new Container();
50 
51  $this->addGlobal_tpl();
52  $this->addGlobal_ilDB();
53  $this->addGlobal_ilias();
54  $this->addGlobal_ilLog();
55  $this->addGlobal_ilErr();
56  $this->addGlobal_tree();
57  $this->addGlobal_lng();
59  $this->addGlobal_objDefinition();
60  $this->addGlobal_refinery();
62  $this->addGlobal_uiFactory();
63  $this->addGlobal_uiRenderer();
65 
66  $this->getMockBuilder(\ILIAS\DI\LoggingServices::class)->disableOriginalConstructor()->getMock();
67 
68  $http_mock = $this
69  ->getMockBuilder(\ILIAS\HTTP\Services::class)
70  ->disableOriginalConstructor()
71  ->onlyMethods(['request', 'wrapper'])->getMock();
72 
73  $request_mock = $this
74  ->getMockBuilder(\GuzzleHttp\Psr7\ServerRequest::class)
75  ->disableOriginalConstructor()
76  ->onlyMethods(['getParsedBody'])->getMock();
77  $request_mock->method('getParsedBody')->willReturn(array());
78  $http_mock->method('request')->willReturn($request_mock);
79 
80  $wrapper_mock = $this->createMock(\ILIAS\HTTP\Wrapper\WrapperFactory::class);
81  $http_mock->method('wrapper')->willReturn($wrapper_mock);
82 
83  $this->setGlobalVariable('http', $http_mock);
84 
85  parent::setUp();
86  }
87 
88  protected function tearDown(): void
89  {
90  global $DIC;
91 
92  $DIC = $this->dic;
93 
94  parent::tearDown();
95  }
96 
101  protected function setGlobalVariable(string $name, $value): void
102  {
103  global $DIC;
104 
105  $GLOBALS[$name] = $value;
106 
107  unset($DIC[$name]);
108  $DIC[$name] = static function (Container $c) use ($value) {
109  return $value;
110  };
111  }
112 
116  protected function getGlobalTemplateMock()
117  {
118  return $this->getMockBuilder(ilTemplate::class)->disableOriginalConstructor()->getMock();
119  }
120 
124  protected function getDatabaseMock()
125  {
126  return $this->getMockBuilder(ilDBInterface::class)->disableOriginalConstructor()->getMock();
127  }
128 
132  protected function getIliasMock()
133  {
134  $mock = $this->getMockBuilder(ILIAS::class)->disableOriginalConstructor()->getMock();
135 
136  $account = new stdClass();
137  $account->id = 6;
138  $account->fullname = 'Esther Tester';
139 
140  $mock->account = $account;
141 
142  return $mock;
143  }
144 
145  protected function addGlobal_ilAccess(): void
146  {
147  $this->setGlobalVariable("ilAccess", $this->createMock(ilAccess::class));
148  }
149 
150  protected function addGlobal_ilUser(): void
151  {
152  $this->setGlobalVariable("ilUser", $this->createMock(ilObjUser::class));
153  }
154 
155  protected function addGlobal_objDefinition(): void
156  {
157  $this->setGlobalVariable("objDefinition", $this->createMock(ilObjectDefinition::class));
158  }
159 
160  protected function addGlobal_tree(): void
161  {
162  $this->setGlobalVariable("tree", $this->createMock(ilTree::class));
163  }
164 
165  protected function addGlobal_ilSetting(): void
166  {
167  $this->setGlobalVariable("ilSetting", $this->createMock(ilSetting::class));
168  }
169 
170  protected function addGlobal_rbacsystem(): void
171  {
172  $this->setGlobalVariable("rbacsystem", $this->createMock(ilRbacSystem::class));
173  }
174 
175  protected function addGlobal_ilRbacAdmin(): void
176  {
177  $this->setGlobalVariable("rbacadmin", $this->createMock(ilRbacAdmin::class));
178  }
179 
180  protected function addGlobal_ilCtrl(): void
181  {
182  $this->setGlobalVariable("ilCtrl", $this->createMock(ilCtrl::class));
183  }
184 
185  protected function addGlobal_lng(): void
186  {
187  $this->setGlobalVariable("lng", $this->createMock(ilLanguage::class));
188  }
189 
190  protected function addGlobal_filesystem(): void
191  {
192  $this->setGlobalVariable("filesystem", $this->createMock(Filesystems::class));
193  }
194 
195  protected function addGlobal_upload(): void
196  {
197  $this->setGlobalVariable("upload", $this->createMock(FileUpload::class));
198  }
199 
200  protected function addGlobal_ilDB(): void
201  {
202  $this->setGlobalVariable("ilDB", $this->createMock(ilDBInterface::class));
203  }
204 
205  protected function addGlobal_ilBench(): void
206  {
207  $this->setGlobalVariable("ilBench", $this->createMock(ilBenchmark::class));
208  }
209 
210  protected function addGlobal_ilLog(): void
211  {
212  $this->setGlobalVariable("ilLog", $this->createMock(ilLogger::class));
213  }
214 
215  protected function addGlobal_ilias(): void
216  {
217  $this->setGlobalVariable("ilias", $this->getIliasMock());
218  }
219 
220  protected function addGlobal_ilErr(): void
221  {
222  $this->setGlobalVariable("ilErr", $this->createMock(ilErrorHandling::class));
223  }
224 
225  protected function addGlobal_GlobalScreenService(): void
226  {
227  $this->setGlobalVariable("global_screen", $this->createMock(ILIAS\GlobalScreen\Services::class));
228  }
229 
230  protected function addGlobal_ilNavigationHistory(): void
231  {
232  $this->setGlobalVariable("ilNavigationHistory", $this->createMock(ilNavigationHistory::class));
233  }
234 
235  protected function addGlobal_ilAppEventHandler(): void
236  {
237  $this->setGlobalVariable("ilAppEventHandler", $this->createMock(ilAppEventHandler::class));
238  }
239 
240  protected function addGlobal_tpl(): void
241  {
242  $this->setGlobalVariable("tpl", $this->createMock(ilGlobalPageTemplate::class));
243  }
244 
245  protected function addGlobal_ilComponentRepository(): void
246  {
247  $this->setGlobalVariable("component.repository", $this->createMock(ilComponentRepository::class));
248  }
249 
250  protected function addGlobal_ilComponentFactory(): void
251  {
252  $this->setGlobalVariable("component.factory", $this->createMock(ilComponentFactory::class));
253  }
254 
255  protected function addGlobal_ilTabs(): void
256  {
257  $this->setGlobalVariable("ilTabs", $this->createMock(ilTabsGUI::class));
258  }
259 
260  protected function addGlobal_ilObjDataCache(): void
261  {
262  $this->setGlobalVariable("ilObjDataCache", $this->createMock(ilObjectDataCache::class));
263  }
264 
265  protected function addGlobal_ilLocator(): void
266  {
267  $this->setGlobalVariable("ilLocator", $this->createMock(ilLocatorGUI::class));
268  }
269 
270  protected function addGlobal_rbacreview(): void
271  {
272  $this->setGlobalVariable("rbacreview", $this->createMock(ilRbacReview::class));
273  }
274 
275  protected function addGlobal_ilToolbar(): void
276  {
277  $this->setGlobalVariable("ilToolbar", $this->createMock(ilToolbarGUI::class));
278  }
279 
280  protected function addGlobal_http(): void
281  {
282  $http_mock = $this->getMockBuilder(Services::class)->disableOriginalConstructor()->getMock();
283  $http_mock->method('request')->willReturn($this->getMockBuilder(\Psr\Http\Message\ServerRequestInterface::class)->disableOriginalConstructor()->getMock());
284  $this->setGlobalVariable("http", $http_mock);
285  }
286 
287  protected function addGlobal_ilIliasIniFile(): void
288  {
289  $this->setGlobalVariable("ilIliasIniFile", $this->createMock(ilIniFile::class));
290  }
291 
292  protected function addGlobal_ilLoggerFactory(): void
293  {
294  $this->setGlobalVariable("ilLoggerFactory", $this->createMock(ilLoggerFactory::class));
295  }
296 
297  protected function addGlobal_ilHelp(): void
298  {
299  $this->setGlobalVariable("ilHelp", $this->createMock(ilHelpGUI::class));
300  }
301 
302  protected function addGlobal_ui(): void
303  {
304  $this->setGlobalVariable("ui", $this->createMock(ILIAS\DI\UIServices::class));
305  }
306 
307  protected function addGlobal_uiFactory(): void
308  {
309  $this->setGlobalVariable("ui.factory", $this->createMock(Factory::class));
310  }
311 
312  protected function addGlobal_uiRenderer(): void
313  {
314  $this->setGlobalVariable("ui.renderer", $this->createMock(ILIAS\UI\Implementation\DefaultRenderer::class));
315  }
316 
317  protected function addGlobal_refinery(): void
318  {
319  $refineryMock = $this->getMockBuilder(RefineryFactory::class)->disableOriginalConstructor()->getMock();
320  $refineryMock->expects(self::any())->method('random')->willReturn($this->getMockBuilder(RandomGroup::class)->getMock());
321  $this->setGlobalVariable("refinery", $refineryMock);
322  }
323 
324  protected function addGlobal_skillService(): void
325  {
326  $this->setGlobalVariable("skill", $this->createMock(ILIAS\Skill\Service\SkillService::class));
327  }
328 
329  protected function addGlobal_objectService(): void
330  {
331  global $DIC;
332  $DIC['object.customicons.factory'] = $this->getMockBuilder(ilObjectCustomIconFactory::class)->disableOriginalConstructor()->getMock();
333  $object_mock = $this->getMockBuilder(\ilObjectService::class)->disableOriginalConstructor()->getMock();
334 
335  $this->setGlobalVariable("object", $object_mock);
336  }
337 
338  protected function addGlobal_resourceStorage(): void
339  {
340  $this->setGlobalVariable("resource_storage", $this->createMock(ResourceStorage::class));
341  }
342 
343  protected function getTestObjMock(): ilObjTest
344  {
345  $test_mock = $this->createMock(ilObjTest::class);
346  $test_mock->method('getLocalDIC')
347  ->willReturn(
349  );
350  return $test_mock;
351  }
352 }
Class ChatMainBarProvider .
Customizing of pimple-DIC for ILIAS.
Definition: Container.php:35
global $DIC
Definition: feed.php:28
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$GLOBALS["DIC"]
Definition: wac.php:31
Class HTTPServicesTest.
setGlobalVariable(string $name, $value)
Class ilTestBaseClass.
static dic()
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...