/** * Profile generator test. * * @param $profile * @param $machine_name * @param $profile_path * @param $description * @param $core * @param $dependencies * @param $distribution * * @dataProvider commandData */ public function testGenerateProfile($profile, $machine_name, $profile_path, $description, $core, $dependencies, $distribution) { $generator = new ProfileGenerator(); $this->getRenderHelper()->setSkeletonDirs($this->getSkeletonDirs()); $this->getRenderHelper()->setTranslator($this->getTranslatorHelper()); $generator->setHelperSet($this->getHelperSet()); $generator->generate($profile, $machine_name, $profile_path, $description, $core, $dependencies, $distribution); $files = [$machine_name . '.info.yml', $machine_name . '.install', $machine_name . '.profile']; foreach ($files as $file) { $file_path = $profile_path . '/' . $machine_name . '/' . $file; $this->assertTrue(file_exists($file_path), sprintf('%s has been generated', $file_path)); } }
/** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $io = new DrupalStyle($input, $output); if (!$this->confirmGeneration($io)) { return; } $profile = $this->validator->validateModuleName($input->getOption('profile')); $machine_name = $this->validator->validateMachineName($input->getOption('machine-name')); $description = $input->getOption('description'); $core = $input->getOption('core'); $distribution = $input->getOption('distribution'); $profile_path = $this->appRoot . '/profiles'; // Check if all module dependencies are available. $dependencies = $this->validator->validateModuleDependencies($input->getOption('dependencies')); if ($dependencies) { $checked_dependencies = $this->checkDependencies($dependencies['success']); if (!empty($checked_dependencies['no_modules'])) { $io->info(sprintf($this->trans('commands.generate.profile.warnings.module-unavailable'), implode(', ', $checked_dependencies['no_modules']))); } $dependencies = $dependencies['success']; } $this->generator->generate($profile, $machine_name, $profile_path, $description, $core, $dependencies, $distribution); }