ILIAS  trunk Revision v12.0_alpha-1221-g4e438232683
ilTestBaseTestCase Class Reference

Class ilTestBaseClass. More...

+ Inheritance diagram for ilTestBaseTestCase:
+ Collaboration diagram for ilTestBaseTestCase:

Public Member Functions

 createInstanceOf (string $class_name, array $explicit_parameters=[])
 
 createTraitInstanceOf (string $class_name, array $explicit_parameters=[])
 

Static Public Member Functions

static callMethod ($obj, $name, array $args=[])
 
static getNonPublicPropertyValue (object $obj, string $name)
 

Data Fields

const string MOCKED_METHOD_WITHOUT_OUTPUT = 'MOCKED_METHOD_WITHOUT_OUTPUT'
 
const string DYNAMIC_CLASS = 'DynamicClass'
 

Protected Member Functions

 setUp ()
 
 tearDown ()
 

Protected Attributes

Container $dic = null
 
Container $backup_dic = null
 

Static Protected Attributes

static int $DYNAMIC_CLASS_COUNT = 0
 

Private Member Functions

 addGlobals ()
 
 prepareLocalDIC ()
 
 getOrCreateMock (string $parameter_type)
 

Detailed Description

Class ilTestBaseClass.

Author
Marvin Beym mbeym.nosp@m.@dat.nosp@m.abay..nosp@m.de

Definition at line 30 of file ilTestBaseTestCase.php.

Member Function Documentation

◆ addGlobals()

ilTestBaseTestCase::addGlobals ( )
private

Definition at line 67 of file ilTestBaseTestCase.php.

67 : void
68 {
69 $this->addGlobal_ilAccess();
70 $this->addGlobal_dataFactory();
71 $this->addGlobal_tpl();
72 $this->addGlobal_ilDB();
73 $this->addGlobal_ilUser();
74 $this->addGlobal_ilias();
75 $this->addGlobal_ilErr();
76 $this->addGlobal_tree();
77 $this->addGlobal_lng();
81 $this->addGlobal_refinery();
82 $this->addGlobal_rbacsystem();
83 $this->addGlobal_rbacreview();
84 $this->addGlobal_ilRbacAdmin();
85 $this->addGlobal_http();
89 $this->addGlobal_uiFactory();
90 $this->addGlobal_uiRenderer();
91 $this->addGlobal_uiService();
92 $this->addGlobal_static_url();
93 $this->addGlobal_upload();
94 $this->addGlobal_ilLog();
95 $this->addGlobal_ilBench();
96 $this->addGlobal_ilSetting();
97 $this->addGlobal_ilCtrl();
98 $this->addGlobal_ilCtrl();
100 $this->addGlobal_ilHelp();
101 $this->addGlobal_ilTabs();
102 $this->addGlobal_ilLocator();
103 $this->addGlobal_ilToolbar();
104 $this->addGlobal_filesystem();
111 $this->addGlobal_user();
112 $this->addGlobal_mail();
113
114 $this->defineGlobalConstants();
115
116 $this->prepareLocalDIC();
117
118 parent::setUp();
119 }
addGlobal_static_url()
addGlobal_filesystem()
addGlobal_objDefinition()
addGlobal_ilAppEventHandler()
addGlobal_ilNavigationHistory()
addGlobal_ilRbacAdmin()
addGlobal_ilComponentFactory()
addGlobal_GlobalScreenService()
addGlobal_dataFactory()
addGlobal_objectMetadata()
addGlobal_fileDelivery()
addGlobal_ilObjDataCache()
addGlobal_resourceStorage()
addGlobal_ilComponentRepository()
defineGlobalConstants()
addGlobal_ilLoggerFactory()
addGlobal_uiRenderer()
addGlobal_rbacsystem()
addGlobal_rbacreview()
addGlobal_objectService()

References addGlobal_dataFactory(), addGlobal_fileDelivery(), addGlobal_filesystem(), addGlobal_GlobalScreenService(), addGlobal_http(), addGlobal_ilAccess(), addGlobal_ilAppEventHandler(), addGlobal_ilBench(), addGlobal_ilComponentFactory(), addGlobal_ilComponentRepository(), addGlobal_ilCtrl(), addGlobal_ilDB(), addGlobal_ilErr(), addGlobal_ilHelp(), addGlobal_ilias(), addGlobal_ilLocator(), addGlobal_ilLog(), addGlobal_ilLoggerFactory(), addGlobal_ilNavigationHistory(), addGlobal_ilObjDataCache(), addGlobal_ilRbacAdmin(), addGlobal_ilSetting(), addGlobal_ilTabs(), addGlobal_ilToolbar(), addGlobal_ilUser(), addGlobal_lng(), addGlobal_mail(), addGlobal_objDefinition(), addGlobal_objectMetadata(), addGlobal_objectService(), addGlobal_rbacreview(), addGlobal_rbacsystem(), addGlobal_refinery(), addGlobal_resourceStorage(), addGlobal_static_url(), addGlobal_tpl(), addGlobal_tree(), addGlobal_uiFactory(), addGlobal_uiRenderer(), addGlobal_uiService(), addGlobal_upload(), addGlobal_user(), defineGlobalConstants(), and prepareLocalDIC().

Referenced by setUp().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ callMethod()

static ilTestBaseTestCase::callMethod (   $obj,
  $name,
array  $args = [] 
)
static

Definition at line 127 of file ilTestBaseTestCase.php.

128 {
129 return (new ReflectionClass($obj))->getMethod($name)->invokeArgs($obj, $args);
130 }

◆ createInstanceOf()

ilTestBaseTestCase::createInstanceOf ( string  $class_name,
array  $explicit_parameters = [] 
)

Definition at line 145 of file ilTestBaseTestCase.php.

145 : object
146 {
147 $constructor = (new ReflectionClass($class_name))->getConstructor();
148
149 if ($constructor === null) {
150 return new $class_name();
151 }
152
153 $parameters = [];
154
155 foreach ($constructor->getParameters() as $constructor_parameter) {
156 $constructor_parameter_name = $constructor_parameter->getName();
157
158 if (isset($explicit_parameters[$constructor_parameter_name])) {
159 $parameters[$constructor_parameter_name] = $explicit_parameters[$constructor_parameter_name];
160 continue;
161 }
162
163 if ($constructor_parameter->isDefaultValueAvailable()) {
164 $parameters[$constructor_parameter_name] = $constructor_parameter->getDefaultValue();
165 continue;
166 }
167
168 if (!$constructor_parameter->hasType()) {
169 throw new Exception('Constructor parameter has no type.');
170 }
171
172 $constructor_parameter_type_name = $constructor_parameter->getType()?->getName();
173 $parameters[$constructor_parameter_name] = match ($constructor_parameter_type_name) {
174 'string' => '',
175 'int' => 0,
176 'float' => 0.0,
177 'bool', 'true' => true,
178 'false' => false,
179 'array' => [],
180 'null', 'resource' => null,
181 'Closure' => (static fn() => null),
182 'object' => (object) [],
183 default => (function ($constructor_parameter_type_name) {
184 if (enum_exists($constructor_parameter_type_name)) {
185 $enum_cases = $constructor_parameter_type_name::cases();
186 return array_shift($enum_cases);
187 }
188
189 return $this->getOrCreateMock($constructor_parameter_type_name);
190 })($constructor_parameter_type_name)
191 };
192 }
193
194 return new $class_name(...$parameters);
195 }
getOrCreateMock(string $parameter_type)

References getOrCreateMock().

Referenced by createTraitInstanceOf().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ createTraitInstanceOf()

ilTestBaseTestCase::createTraitInstanceOf ( string  $class_name,
array  $explicit_parameters = [] 
)

Definition at line 197 of file ilTestBaseTestCase.php.

197 : object
198 {
199 if (trait_exists($class_name)) {
200 $dynamic_class_name = self::DYNAMIC_CLASS . ++self::$DYNAMIC_CLASS_COUNT;
201 eval("class $dynamic_class_name{use $class_name;}");
202 return $this->createInstanceOf($dynamic_class_name, $explicit_parameters);
203 }
204
205 return $this->createInstanceOf($class_name, $explicit_parameters);
206 }
static int $DYNAMIC_CLASS_COUNT
createInstanceOf(string $class_name, array $explicit_parameters=[])

References $DYNAMIC_CLASS_COUNT, and createInstanceOf().

+ Here is the call graph for this function:

◆ getNonPublicPropertyValue()

static ilTestBaseTestCase::getNonPublicPropertyValue ( object  $obj,
string  $name 
)
static

Definition at line 132 of file ilTestBaseTestCase.php.

132 : mixed
133 {
134 $reflection_class = new ReflectionClass($obj);
135
136 while ($reflection_class !== false && !$reflection_class->hasProperty($name)) {
137 $reflection_class = $reflection_class->getParentClass();
138 }
139
140 return $reflection_class
141 ? $reflection_class->getProperty($name)->getValue($obj)
142 : throw new ReflectionException('Property not found.');
143 }

◆ getOrCreateMock()

ilTestBaseTestCase::getOrCreateMock ( string  $parameter_type)
private

Definition at line 208 of file ilTestBaseTestCase.php.

208 : PHPUnit\Framework\MockObject\MockObject
209 {
210 if (isset($this->services[$parameter_type])) {
211 global $DIC;
212 if (!isset($DIC[$this->services[$parameter_type]])) {
213 $DIC[$this->services[$parameter_type]] = $this->createMock($parameter_type);
214 }
215
216 return $DIC[$this->services[$parameter_type]];
217 }
218
219 return $this->createMock($parameter_type);
220 }
global $DIC
Definition: shib_login.php:26

References $DIC.

Referenced by createInstanceOf().

+ Here is the caller graph for this function:

◆ prepareLocalDIC()

ilTestBaseTestCase::prepareLocalDIC ( )
private

Definition at line 121 of file ilTestBaseTestCase.php.

121 : void
122 {
123 (new ReflectionClass(\ILIAS\Test\TestDIC::class))
124 ->getProperty('dic')->setValue(null, null);
125 }
Interface Observer \BackgroundTasks Contains several chained tasks and infos about them.

Referenced by addGlobals().

+ Here is the caller graph for this function:

◆ setUp()

ilTestBaseTestCase::setUp ( )
protected

Reimplemented in ilTestAnswerOptionalQuestionsConfirmationGUITest, ilTestPassDeletionConfirmationGUITest, ilTestSettingsChangeConfirmationGUITest, ILIAS\Test\Tests\ExportImport\ExportFactoryTest, ILIAS\Test\Tests\ExportImport\ExportFilenameTest, ILIAS\Test\Tests\ExportFixedQuestionSetTest, ILIAS\Test\Tests\ExportImport\ExportRandomQuestionSetTest, ILIAS\Test\Tests\ExportImport\ilTestExporterTest, ilTestImporterTest, ilTestRandomQuestionSetGeneralConfigFormGUITest, ilTestRandomQuestionSetPoolDefinitionFormGUITest, ilAssQuestionPageCommandForwarderTest, ilCronFinishUnfinishedTestPassesTest, ilECSTestSettingsTest, ilMyTestResultsGUITest, ilObjTestAccessTest, ilObjTestFolderAccessTest, ilObjTestFolderTest, ilObjTestGUITest, ilObjTestListGUITest, ilObjTestTest, ilObjTestVerificationAccessTest, ilObjTestVerificationGUITest, ilObjTestVerificationListGUITest, ilObjTestVerificationTest, ilObjTestXMLParserTest, ilRandomTestROInputGUITest, ilTestAccessTest, ilTestArchiveServiceTest, ilTestEvalObjectiveOrientedGUITest, ilTestEvaluationDataTest, ilTestEvaluationGUITest, ilTestEvaluationPassDataTest, ilTestEvaluationUserDataTest, ilTestFixedQuestionSetConfigGUITest, ilTestFixedQuestionSetConfigTest, ilTestGradingMessageBuilderTest, ilTestHTMLGeneratorTest, ilTestLearningObjectivesStatusGUITest, ilTestObjectiveOrientedContainerTest, ilTestParticipantAccessFilterTest, ilTestParticipantDataTest, ilTestParticipantListTest, ilTestParticipantScoringTest, ilTestParticipantsGUITest, ilTestParticipantTest, ilTestPassesSelectorTest, ilTestPassFinishTasksTest, ilTestPasswordCheckerTest, ilTestPasswordProtectionGUITest, ilTestPlayerCommandsTest, ilTestPlayerFactoryTest, ilTestPlayerRandomQuestionSetGUITest, ilTestProcessLockerDbTest, ilTestProcessLockerFactoryTest, ilTestProcessLockerFileTest, ilTestProcessLockerNoneTest, ilTestProcessLockFileStorageTest, ilTestQuestionFilterLabelTranslatorTest, ilTestQuestionHeaderBlockBuilderTest, ilTestQuestionNavigationGUITest, Test\tests\ilTestQuestionPoolSelectorExplorerTest, ilTestQuestionRelatedObjectivesListTest, ilTestQuestionSetConfigFactoryTest, ilTestRandomQuestionCollectionSubsetApplicationListTest, ilTestRandomQuestionCollectionSubsetApplicationTest, ilTestRandomQuestionSetConfigGUITest, ilTestRandomQuestionSetConfigStateMessageHandlerTest, ilTestRandomQuestionSetConfigTest, ilTestRandomQuestionSetNonAvailablePoolTest, ilTestRandomQuestionSetPoolDeriverTest, ilTestRandomQuestionSetQuestionCollectionTest, ilTestRandomQuestionSetQuestionTest, ilTestRandomQuestionSetSourcePoolDefinitionFactoryTest, ilTestRandomQuestionSetSourcePoolDefinitionListTest, ilTestRandomQuestionSetSourcePoolDefinitionTest, ilTestRandomQuestionSetStagingPoolBuilderTest, ilTestRandomQuestionSetStagingPoolQuestionListTest, ilTestRandomQuestionSetStagingPoolQuestionTest, ilTestRandomQuestionsQuantitiesDistributionTest, ilTestRandomQuestionsSrcPoolDefinitionQuantitiesCalculationTest, ilTestReindexedSequencePositionMapTest, ilTestResultsGUITest, ilTestResultsToXMLTest, ilTestSequenceFactoryTest, ilTestSequenceFixedQuestionSetTest, ilTestSequenceRandomQuestionSetTest, ilTestSequenceTest, ilTestServiceGUITest, ilTestServiceTest, ilTestSessionFactoryTest, ilTestSessionTest, ilTestSkillAdministrationGUITest, ilTestSkillEvaluationGUITest, ilTestSkillEvaluationTest, ilTestSkillLevelThresholdExporterTest, ilTestSkillLevelThresholdImporterTest, ilTestSkillLevelThresholdImportFailsTest, ilTestSkillLevelThresholdImportListTest, ilTestSkillLevelThresholdImportTest, ilTestSkillLevelThresholdListTest, ilTestSkillLevelThresholdsGUITest, ilTestSkillLevelThresholdTest, ilTestSkillLevelThresholdXmlParserTest, ilTestSkillPointAccountTest, ilTestTaxonomyTreeTest, ilTestToplistGUITest, ilTestVirtualSequenceRandomQuestionSetTest, ilTestVirtualSequenceTest, ILIAS\Test\Tests\Presentation\TabsManagerTest, ILIAS\Test\Tests\Questions\Presentation\QuestionsOfAttemptTableTest, ILIAS\Test\Tests\Questions\Presentation\QuestionsTableTest, ILIAS\Test\Tests\Results\Presentation\TitlesBuilderTest, MarkSchemaGUITest, MarkSchemaTableTest, MarkSchemaTest, Results\Toplist\DataRetrievalTest, Results\Toplist\TestTopListRepositoryTest, ilResultsByQuestionTableGUITest, ilTestPassDetailsOverviewTableGUITest, ilTestPassOverviewTableGUITest, ilTestQuestionBrowserTableGUITest, ilTestSkillLevelThresholdsTableGUITest, ilTestVerificationTableGUITest, TestDICTest, TestScoringTest, ilTestInfoScreenToolbarGUITest, ilTestNavigationToolbarGUITest, ilTestRandomQuestionSetSourcePoolDefinitionListToolbarGUITest, and ilTestSkillEvaluationToolbarGUITest.

Definition at line 43 of file ilTestBaseTestCase.php.

43 : void
44 {
45 error_reporting(E_ALL);
46 $this->defineGlobalConstants();
47
48 global $DIC;
49 $this->backup_dic = is_object($DIC) ? clone $DIC : $DIC;
50
51 $DIC = $this->getMockBuilder(Container::class)->onlyMethods([])->getMock();
52 $this->addGlobals();
53 $this->dic = $DIC;
54
55 parent::setUp();
56 }

References $DIC, addGlobals(), and defineGlobalConstants().

+ Here is the call graph for this function:

◆ tearDown()

ilTestBaseTestCase::tearDown ( )
protected

Definition at line 58 of file ilTestBaseTestCase.php.

58 : void
59 {
60 global $DIC;
61
63
64 parent::tearDown();
65 }

References $backup_dic, and $DIC.

Field Documentation

◆ $backup_dic

Container ilTestBaseTestCase::$backup_dic = null
protected

Definition at line 38 of file ilTestBaseTestCase.php.

Referenced by tearDown().

◆ $dic

Container ilTestBaseTestCase::$dic = null
protected

Definition at line 37 of file ilTestBaseTestCase.php.

◆ $DYNAMIC_CLASS_COUNT

int ilTestBaseTestCase::$DYNAMIC_CLASS_COUNT = 0
staticprotected

Definition at line 36 of file ilTestBaseTestCase.php.

Referenced by createTraitInstanceOf().

◆ DYNAMIC_CLASS

const string ilTestBaseTestCase::DYNAMIC_CLASS = 'DynamicClass'

Definition at line 35 of file ilTestBaseTestCase.php.

◆ MOCKED_METHOD_WITHOUT_OUTPUT

const string ilTestBaseTestCase::MOCKED_METHOD_WITHOUT_OUTPUT = 'MOCKED_METHOD_WITHOUT_OUTPUT'

Definition at line 34 of file ilTestBaseTestCase.php.


The documentation for this class was generated from the following file: