ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
ilServicesCertificateSuite.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
23 
24 require_once __DIR__ . '/bootstrap.php';
25 
30 {
31  public static function suite(): ilServicesCertificateSuite
32  {
33  $suite = new self();
34 
35  $recursiveIteratorIterator = new RecursiveIteratorIterator(
36  new RecursiveDirectoryIterator(__DIR__, FilesystemIterator::SKIP_DOTS),
37  RecursiveIteratorIterator::LEAVES_ONLY
38  );
39 
40  $regexIterator = new RegExIterator($recursiveIteratorIterator, '/(?<!Base)Test\.php$/');
41 
42  foreach ($regexIterator as $file) {
44  require_once $file->getPathname();
45 
46  $className = preg_replace('/(.*?)(\.php)/', '$1', $file->getBasename());
47 
48  if (class_exists($className)) {
49  $reflection = new ReflectionClass($className);
50  if (
51  !$reflection->isAbstract() &&
52  !$reflection->isInterface() &&
53  $reflection->isSubclassOf(TestCase::class)) {
54  $suite->addTestSuite($className);
55  }
56  }
57  }
58 
59  return $suite;
60  }
61 }