ILIAS  trunk Revision v13.0_alpha-62-g3b72d83f2e5
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 $this->addGlobal_logging();
114
115 $this->defineGlobalConstants();
116
117 $this->prepareLocalDIC();
118
120 }
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_logging(), 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(), prepareLocalDIC(), and setUp().

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 128 of file ilTestBaseTestCase.php.

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

◆ createInstanceOf()

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

Definition at line 146 of file ilTestBaseTestCase.php.

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

References $parameters, and 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 198 of file ilTestBaseTestCase.php.

198 : object
199 {
200 if (trait_exists($class_name)) {
201 $dynamic_class_name = self::DYNAMIC_CLASS . ++self::$DYNAMIC_CLASS_COUNT;
202 eval("class $dynamic_class_name{use $class_name;}");
203 return $this->createInstanceOf($dynamic_class_name, $explicit_parameters);
204 }
205
206 return $this->createInstanceOf($class_name, $explicit_parameters);
207 }
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 133 of file ilTestBaseTestCase.php.

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

◆ getOrCreateMock()

ilTestBaseTestCase::getOrCreateMock ( string  $parameter_type)
private

Definition at line 209 of file ilTestBaseTestCase.php.

209 : PHPUnit\Framework\MockObject\MockObject
210 {
211 if (isset($this->services[$parameter_type])) {
212 global $DIC;
213 if (!isset($DIC[$this->services[$parameter_type]])) {
214 $DIC[$this->services[$parameter_type]] = $this->createMock($parameter_type);
215 }
216
217 return $DIC[$this->services[$parameter_type]];
218 }
219
220 return $this->createMock($parameter_type);
221 }
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 122 of file ilTestBaseTestCase.php.

122 : void
123 {
124 (new ReflectionClass(\ILIAS\Test\TestDIC::class))
125 ->getProperty('dic')->setValue(null, null);
126 }
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\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, ilTestSequenceFactoryTest, ilTestSequenceFixedQuestionSetTest, ilTestSequenceRandomQuestionSetTest, ilTestSequenceTest, ilTestServiceGUITest, ilTestServiceTest, ilTestSessionFactoryTest, ilTestSessionTest, ilTestSkillAdministrationGUITest, ilTestSkillEvaluationGUITest, ilTestSkillEvaluationTest, ilTestSkillLevelThresholdExporterTest, ilTestSkillLevelThresholdImporterTest, ilTestSkillLevelThresholdImportFailsTest, ilTestSkillLevelThresholdImportListTest, ilTestSkillLevelThresholdImportTest, ilTestSkillLevelThresholdListTest, ilTestSkillLevelThresholdsGUITest, ilTestSkillLevelThresholdTest, ilTestSkillLevelThresholdXmlParserTest, ilTestSkillPointAccountTest, ilTestTaxonomyTreeTest, 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, 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
56 }

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

+ 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
65 }

References $backup_dic, $DIC, and tearDown().

+ Here is the call graph for this function:

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: