Exemple #1
0
 public function __construct(Nette\Loaders\RobotLoader $robotLoader)
 {
     $classes = $robotLoader->getIndexedClasses();
     foreach ($classes as $class => $file) {
         if (class_exists($class)) {
             $reflection = new \Nette\Reflection\ClassType($class);
             if ($reflection->implementsInterface('Tatami\\Modules\\IModule')) {
                 if (!($reflection->isAbstract() or $reflection->isInterface())) {
                     $this->modules[] = $this->parseModuleName($reflection->getShortName());
                 }
             }
             if ($reflection->isSubclassOf('Tatami\\Presenters\\BackendPresenter')) {
                 $moduleName = $this->parseModuleName($reflection->getNamespaceName());
                 $presenterName = $this->parsePresenterName($reflection->getShortName());
                 $this->presenters[$moduleName][] = $presenterName;
                 $methods = $reflection->getMethods(ReflectionMethod::IS_PUBLIC);
                 foreach ($methods as $method) {
                     if (Strings::match($method->name, '/action/') or Strings::match($method->name, '/render/')) {
                         $this->actions[$presenterName][] = $this->parseActionName($method->name);
                     }
                 }
             }
             unset($reflection);
         }
     }
 }
Exemple #2
0
 /**
  * Find test suits to run
  * 
  * @param string $folder Where to look
  * @return string[]
  */
 protected function findSuits($folder)
 {
     $suits = [];
     $robot = new \Nette\Loaders\RobotLoader();
     $robot->setCacheStorage(new \Nette\Caching\Storages\DevNullStorage());
     $robot->addDirectory($folder);
     $robot->acceptFiles = "*.phpt";
     $robot->rebuild();
     $robot->register();
     $classes = $robot->getIndexedClasses();
     foreach ($classes as $class => $file) {
         $rc = new \Nette\Reflection\ClassType($class);
         if (!$rc->isAbstract() and $rc->isSubclassOf(TestCase::class)) {
             $suits[] = [$rc->getName(), $file];
         }
     }
     return $suits;
 }