ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
All Data Structures Namespaces Files Functions Variables Modules Pages
ilServicesCertificateSuite.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2018 ILIAS open source, Extended GPL, see docs/LICENSE */
5 
6 require_once __DIR__ . '/bootstrap.php';
7 
11 class ilServicesCertificateSuite extends TestSuite
12 {
16  public static function suite()
17  {
18  $suite = new self();
19 
20  $recursiveIteratorIterator = new \RecursiveIteratorIterator(
21  new \RecursiveDirectoryIterator(__DIR__, \FilesystemIterator::SKIP_DOTS),
22  \RecursiveIteratorIterator::LEAVES_ONLY
23  );
24 
25  $regexIterator = new \RegExIterator($recursiveIteratorIterator, '/(?<!Base)Test\.php$/');
26 
27  foreach ($regexIterator as $file) {
29  require_once $file->getPathname();
30 
31  $className = preg_replace('/(.*?)(\.php)/', '$1', $file->getBasename());
32 
33  if (class_exists($className)) {
34  $reflection = new \ReflectionClass($className);
35  if (
36  !$reflection->isAbstract() &&
37  !$reflection->isInterface() &&
38  $reflection->isSubclassOf(TestCase::class)) {
39  $suite->addTestSuite($className);
40  }
41  }
42  }
43 
44  return $suite;
45  }
46 }
$suite