ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
ilServicesMailSuite.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
23 
29 {
33  public static function suite(): self
34  {
35  $suite = new self();
36 
37  foreach (new RegExIterator(
39  new RecursiveDirectoryIterator(__DIR__, FilesystemIterator::SKIP_DOTS),
40  RecursiveIteratorIterator::LEAVES_ONLY
41  ),
42  '/BaseTest\.php$/'
43  ) as $file) {
45  require_once $file->getPathname();
46  }
47 
48  foreach (new RegExIterator(
50  new RecursiveDirectoryIterator(__DIR__, FilesystemIterator::SKIP_DOTS),
51  RecursiveIteratorIterator::LEAVES_ONLY
52  ),
53  '/(?<!Base)Test\.php$/'
54  ) as $file) {
56  require_once $file->getPathname();
57 
58  $className = preg_replace('/(.*?)(\.php)/', '$1', $file->getBasename());
59  if (class_exists($className)) {
60  $reflection = new ReflectionClass($className);
61  if (
62  !$reflection->isAbstract() &&
63  !$reflection->isInterface() &&
64  $reflection->isSubclassOf(TestCase::class)) {
65  $suite->addTestSuite($className);
66  }
67  }
68  }
69 
70  return $suite;
71  }
72 }
Class ilServicesMailSuite.