ILIAS  release_8 Revision v8.23
ilServicesRandomizationSuite.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /* Copyright (c) 1998-2021 ILIAS open source, Extended GPL, see docs/LICENSE */
6 
9 
10 require_once 'libs/composer/vendor/autoload.php';
11 
18 {
19  public static function suite(): self
20  {
21  $suite = new self();
22 
23  foreach (new RegExIterator(
25  new RecursiveDirectoryIterator(__DIR__, FilesystemIterator::SKIP_DOTS),
26  RecursiveIteratorIterator::LEAVES_ONLY
27  ),
28  '/(?<!Base)Test\.php$/'
29  ) as $file) {
31  require_once $file->getPathname();
32 
33  $className = preg_replace('/(.*?)(\.php)/', '$1', $file->getBasename());
34  if (class_exists($className)) {
35  $reflection = new ReflectionClass($className);
36  if (
37  !$reflection->isAbstract() &&
38  !$reflection->isInterface() &&
39  $reflection->isSubclassOf(TestCase::class)) {
40  $suite->addTestSuite($className);
41  }
42  }
43  }
44 
45  return $suite;
46  }
47 }