ILIAS  release_8 Revision v8.23
ilServicesNotificationsSuite.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
23 
24 require_once __DIR__ . '/bootstrap.php';
25 
30 {
31  public static function suite(): self
32  {
33  $suite = new self();
34 
35  foreach (new RegExIterator(
37  new RecursiveDirectoryIterator(__DIR__, FilesystemIterator::SKIP_DOTS),
38  RecursiveIteratorIterator::LEAVES_ONLY
39  ),
40  '/BaseTest\.php$/'
41  ) as $file) {
43  require_once $file->getPathname();
44  }
45 
46  foreach (new RegExIterator(
48  new RecursiveDirectoryIterator(__DIR__, FilesystemIterator::SKIP_DOTS),
49  RecursiveIteratorIterator::LEAVES_ONLY
50  ),
51  '/(?<!Base)Test\.php$/'
52  ) as $file) {
54  require_once $file->getPathname();
55 
56  $className = preg_replace('/(.*?)(\.php)/', '$1', $file->getBasename());
57  if (class_exists($className)) {
58  $reflection = new ReflectionClass($className);
59  if (
60  !$reflection->isAbstract() &&
61  !$reflection->isInterface() &&
62  $reflection->isSubclassOf(TestCase::class)) {
63  $suite->addTestSuite($className);
64  }
65  }
66  }
67 
68  return $suite;
69  }
70 }