/** * Provide tests to test suite * * @param unittest.TestSuite $suite * @param var[] $arguments * @return void */ public function provideTo($suite, $arguments) { if (null === $this->method) { return $suite->addTestClass($this->testClass, $arguments); } else { $suite->addTest($this->testClass->getConstructor()->newInstance(array_merge([$this->method], (array) $arguments))); } }
/** * Provide tests to test suite * * @param unittest.TestSuite $suite * @param var[] $arguments * @return void */ public function provideTo($suite, $arguments) { $section = $this->properties->getFirstSection(); do { if ('this' === $section) { continue; } // Ignore special section $suite->addTestClass(XPClass::forName($this->properties->readString($section, 'class')), $arguments ?: $this->properties->readArray($section, 'args')); } while ($section = $this->properties->getNextSection()); }
/** * Provide tests from a given package to the test suite. Handles recursion. * * @param lang.reflect.Package $package * @param unittest.TestSuite $suite * @param var[] $arguments * @return void */ private function provideFrom($package, $suite, $arguments) { foreach ($package->getClasses() as $class) { if ($class->isSubclassOf(TestCase::class) && !Modifiers::isAbstract($class->getModifiers())) { $suite->addTestClass($class, $arguments); } } if ($this->recursive) { foreach ($package->getPackages() as $package) { $this->provideFrom($package, $suite, $arguments); } } }
/** * Provide tests to test suite * * @param unittest.TestSuite $suite * @param var[] $arguments * @return void * @throws lang.IllegalArgumentException if no tests are found */ public function provideTo($suite, $arguments) { $it = new FilteredIOCollectionIterator(new FileCollection($this->loader->path), new ExtensionEqualsFilter(\xp::CLASS_FILE_EXT), true); $l = strlen($this->loader->path); $e = -strlen(\xp::CLASS_FILE_EXT); $empty = true; foreach ($it as $element) { $class = $this->loader->loadClass(strtr(substr($element->getUri(), $l, $e), DIRECTORY_SEPARATOR, '.')); if ($class->isSubclassOf(TestCase::class) && !Modifiers::isAbstract($class->getModifiers())) { $suite->addTestClass($class, $arguments); $empty = false; } } if ($empty) { throw new IllegalArgumentException('Cannot find any test cases in ' . $this->loader->toString()); } }
/** * Provide tests to test suite * * @param unittest.TestSuite $suite * @param var[] $arguments * @return void */ public function provideTo($suite, $arguments) { $suite->addTest($this->testClass->newInstance('run')); }
/** * Provide tests to test suite * * @param unittest.TestSuite $suite * @param var[] $arguments * @return void */ public function provideTo($suite, $arguments) { $suite->addTestClass($this->loader->loadUri($this->uri), $arguments); }