36 private $actionObjectExtractor;
43 private $annotationExtractor;
50 private $testHookObjectExtractor;
57 private $modulePathExtractor;
76 return $this->annotationExtractor;
92 $testAnnotations = [];
94 $filename = $testData[
'filename'] ??
null;
95 $fileNames = explode(
",", $filename);
96 $baseFileName = $fileNames[0];
97 $module = $this->modulePathExtractor->extractModuleName($baseFileName);
98 $testReference = $testData[
'extends'] ??
null;
103 self::TEST_ANNOTATIONS,
104 self::TEST_BEFORE_HOOK,
105 self::TEST_AFTER_HOOK,
106 self::TEST_FAILED_HOOK,
107 self::TEST_INSERT_BEFORE,
108 self::TEST_INSERT_AFTER,
113 $testAnnotations = $this->annotationExtractor->extractAnnotations(
114 $testData[self::TEST_ANNOTATIONS] ?? [],
115 $testData[self::NAME]
119 $testAnnotations[
"features"] = [$module];
122 if (array_key_exists(self::TEST_BEFORE_HOOK, $testData) && is_array($testData[self::TEST_BEFORE_HOOK])) {
124 $testData[self::NAME],
126 $testData[self::TEST_BEFORE_HOOK]
130 if (array_key_exists(self::TEST_AFTER_HOOK, $testData) && is_array($testData[self::TEST_AFTER_HOOK])) {
133 $testData[self::NAME],
135 $testData[self::TEST_AFTER_HOOK]
140 $testData[self::NAME]
147 $testData[self::NAME],
148 $this->actionObjectExtractor->extractActions($testActions, $testData[self::NAME]),
155 throw new XmlException($exception->getMessage() .
' in Test ' . $filename);
static validateName($name, $type)