ILIAS  release_8 Revision v8.23
ilBuddySystemTestSuite.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 {
31  public static function suite(): self
32  {
33  if (!defined('ANONYMOUS_USER_ID')) {
34  define('ANONYMOUS_USER_ID', 13);
35  }
36 
37  require_once __DIR__ . '/ilBuddySystemBaseTest.php';
38 
39  $suite = new self();
40 
41  foreach (new RegExIterator(
43  new RecursiveDirectoryIterator(__DIR__, FilesystemIterator::SKIP_DOTS),
44  RecursiveIteratorIterator::LEAVES_ONLY
45  ),
46  '/BaseTest\.php$/'
47  ) as $file
48  ) {
50  require_once $file->getPathname();
51  }
52 
53  foreach (new RegExIterator(
55  new RecursiveDirectoryIterator(__DIR__, FilesystemIterator::SKIP_DOTS),
56  RecursiveIteratorIterator::LEAVES_ONLY
57  ),
58  '/(?<!Base)Test\.php$/'
59  ) as $file) {
61  require_once $file->getPathname();
62 
63  $className = preg_replace('/(.*?)(\.php)/', '$1', $file->getBasename());
64  if (class_exists($className)) {
65  $reflection = new ReflectionClass($className);
66  if (
67  !$reflection->isAbstract() &&
68  !$reflection->isInterface() &&
69  $reflection->isSubclassOf(TestCase::class)
70  ) {
71  $suite->addTestSuite($className);
72  }
73  }
74  }
75 
76  return $suite;
77  }
78 }