ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
ilModulesEmployeeTalkSuite.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
23 
25 {
26  public static function suite(): self
27  {
28  $suite = new ilModulesEmployeeTalkSuite();
29 
30  $dir = new RecursiveDirectoryIterator(__DIR__);
31  $iterator = new RecursiveIteratorIterator($dir);
32  $test_files = new RegexIterator($iterator, '/Test\.php$/');
33 
34  foreach ($test_files as $test_file) {
36  require_once $test_file->getPathname();
37 
38  $class_name = preg_replace('/.*test\/(.*?)(\.php)/', '$1', $test_file->getPathname());
39  $class_name = str_replace('/', '\\', $class_name);
40  $class_name = '\\ILIAS\\EmployeeTalk\\' . $class_name;
41 
42  if (class_exists($class_name)) {
43  $reflection = new ReflectionClass($class_name);
44  if (
45  !$reflection->isAbstract() &&
46  !$reflection->isInterface() &&
47  $reflection->isSubclassOf(TestCase::class)
48  ) {
49  $suite->addTestSuite($class_name);
50  }
51  }
52  }
53 
54  return $suite;
55  }
56 }