ILIAS  release_8 Revision v8.23
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 {
34  public static function suite(): ilServicesCertificateSuite
35  {
36  $suite = new self();
37 
38  $recursiveIteratorIterator = new RecursiveIteratorIterator(
39  new RecursiveDirectoryIterator(__DIR__, FilesystemIterator::SKIP_DOTS),
40  RecursiveIteratorIterator::LEAVES_ONLY
41  );
42 
43  $regexIterator = new RegExIterator($recursiveIteratorIterator, '/(?<!Base)Test\.php$/');
44 
45  foreach ($regexIterator as $file) {
47  require_once $file->getPathname();
48 
49  $className = preg_replace('/(.*?)(\.php)/', '$1', $file->getBasename());
50 
51  if (class_exists($className)) {
52  $reflection = new ReflectionClass($className);
53  if (
54  !$reflection->isAbstract() &&
55  !$reflection->isInterface() &&
56  $reflection->isSubclassOf(TestCase::class)) {
57  $suite->addTestSuite($className);
58  }
59  }
60  }
61 
62  return $suite;
63  }
64 }