available test runner providers, even if not activated, * providers have to be registered. * * @author Bertrand Chevrier * @author Jean-Sébastien Conan */ class ProviderRegistry extends AbstractModuleRegistry { /** * @see \oat\oatbox\AbstractRegistry::getConfigId() */ protected function getConfigId() { return 'test_runner_provider_registry'; } /** * @see \oat\oatbox\AbstractRegistry::getExtension() */ protected function getExtension() { return common_ext_ExtensionsManager::singleton()->getExtensionById('taoTests'); } /** * Get all modules that belong to a category * @param string $category - the provider category (runner, proxy,etc.) * @return array the matching providers */ public function getByCategory($category = null) { if ($category === null) { return []; } return array_filter( $this->getMap(), function ($provider) use ($category) { return isset($provider['category']) && $provider['category'] === $category; } ); } /** * Unregister all modules that belong to a category * @param string $category - the provider category (runner, proxy,etc.) */ public function removeByCategory($category = null) { foreach ($this->getByCategory($category) as $provider) { if (isset($provider['module'])) { $this->remove($provider['module']); } } } }