ILIAS  release_8 Revision v8.24
ilServicesNotificationsSuite.php
Go to the documentation of this file.
1<?php
2
3declare(strict_types=1);
4
21use PHPUnit\Framework\TestSuite;
22use PHPUnit\Framework\TestCase;
23
24require_once __DIR__ . '/bootstrap.php';
25
29class ilServicesNotificationsSuite extends TestSuite
30{
31 public static function suite(): self
32 {
33 $suite = new self();
34
35 foreach (new RegExIterator(
36 new RecursiveIteratorIterator(
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(
47 new RecursiveIteratorIterator(
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}