ILIAS  trunk Revision v13.0_alpha-62-g3b72d83f2e5
LanguageObjectRepositoryProvider.php
Go to the documentation of this file.
1<?php
2
20declare(strict_types=1);
21
23
25use PHPUnit\Framework\MockObject\MockObject;
26use PHPUnit\Framework\MockObject\Stub;
27
33trait LanguageObjectRepositoryProvider
34{
35 protected function languageObjectProvider(\Closure $lng_objects, \Closure $obj_language_factory): RepositoryProvider&Stub
36 {
37 $provider = $this->createStub(RepositoryProvider::class);
38 $this->answerFromLanguageObjects($provider, $lng_objects, $obj_language_factory);
39
40 return $provider;
41 }
42
44 protected function languageObjectProviderMock(\Closure $lng_objects, \Closure $obj_language_factory): RepositoryProvider&MockObject
45 {
46 $provider = $this->createMock(RepositoryProvider::class);
47 $this->answerFromLanguageObjects($provider, $lng_objects, $obj_language_factory);
48
49 return $provider;
50 }
51
52 private function answerFromLanguageObjects(
53 RepositoryProvider&Stub $provider,
54 \Closure $lng_objects,
55 \Closure $obj_language_factory
56 ): void {
57 $provider->method('listLanguageObjects')->willReturnCallback($lng_objects);
58 $provider->method('isSystemLanguage')->willReturnCallback(
59 static fn(int $id): bool => $obj_language_factory($id)->isSystemLanguage()
60 );
61 $provider->method('isUserLanguage')->willReturnCallback(
62 static fn(int $id): bool => $obj_language_factory($id)->isUserLanguage()
63 );
64 $provider->method('isInstalled')->willReturnCallback(
65 static fn(int $id): bool => $obj_language_factory($id)->isInstalled()
66 );
67 $provider->method('uninstall')->willReturnCallback(static function (int $id) use ($obj_language_factory): ?array {
68 $language = $obj_language_factory($id);
69
70 return $language->uninstall() === '' ? null : $language->getModulesWithUnwrittenOverlay();
71 });
72 $provider->method('removeLocalChanges')->willReturnCallback(static function (int $id) use ($obj_language_factory): ?array {
73 $language = $obj_language_factory($id);
74
75 return $language->removeLocalChanges() ? $language->getModulesWithUnwrittenOverlay() : null;
76 });
77 }
78}
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
Every legacy and repository access of the runtime language activities.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...