From a60c45ca4df00a3801d7d357530287a2b74413d0 Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Sun, 31 Dec 2017 18:58:11 +0100 Subject: [PATCH] Simplified and improved ResolveUrlCommand with SymfonyStyle --- .../Command/Shortcode/ResolveUrlCommand.php | 30 ++++++++----------- .../Shortcode/ResolveUrlCommandTest.php | 4 +-- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/module/CLI/src/Command/Shortcode/ResolveUrlCommand.php b/module/CLI/src/Command/Shortcode/ResolveUrlCommand.php index 539035b1..fcf62fbe 100644 --- a/module/CLI/src/Command/Shortcode/ResolveUrlCommand.php +++ b/module/CLI/src/Command/Shortcode/ResolveUrlCommand.php @@ -7,11 +7,10 @@ use Shlinkio\Shlink\Core\Exception\EntityDoesNotExistException; use Shlinkio\Shlink\Core\Exception\InvalidShortCodeException; use Shlinkio\Shlink\Core\Service\UrlShortenerInterface; use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Helper\QuestionHelper; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\Console\Question\Question; +use Symfony\Component\Console\Style\SymfonyStyle; use Zend\I18n\Translator\TranslatorInterface; class ResolveUrlCommand extends Command @@ -52,14 +51,10 @@ class ResolveUrlCommand extends Command return; } - /** @var QuestionHelper $helper */ - $helper = $this->getHelper('question'); - $question = new Question(sprintf( - '%s ', - $this->translator->translate('A short code was not provided. Which short code do you want to parse?:') - )); - - $shortCode = $helper->ask($input, $output, $question); + $io = new SymfonyStyle($input, $output); + $shortCode = $io->ask( + $this->translator->translate('A short code was not provided. Which short code do you want to parse?') + ); if (! empty($shortCode)) { $input->setArgument('shortCode', $shortCode); } @@ -67,19 +62,20 @@ class ResolveUrlCommand extends Command public function execute(InputInterface $input, OutputInterface $output) { + $io = new SymfonyStyle($input, $output); $shortCode = $input->getArgument('shortCode'); try { $longUrl = $this->urlShortener->shortCodeToUrl($shortCode); - $output->writeln(sprintf('%s %s', $this->translator->translate('Long URL:'), $longUrl)); + $output->writeln(\sprintf('%s %s', $this->translator->translate('Long URL:'), $longUrl)); } catch (InvalidShortCodeException $e) { - $output->writeln(sprintf('' . $this->translator->translate( - 'Provided short code "%s" has an invalid format.' - ) . '', $shortCode)); + $io->error( + \sprintf($this->translator->translate('Provided short code "%s" has an invalid format.'), $shortCode) + ); } catch (EntityDoesNotExistException $e) { - $output->writeln(sprintf('' . $this->translator->translate( - 'Provided short code "%s" could not be found.' - ) . '', $shortCode)); + $io->error( + \sprintf($this->translator->translate('Provided short code "%s" could not be found.'), $shortCode) + ); } } } diff --git a/module/CLI/test/Command/Shortcode/ResolveUrlCommandTest.php b/module/CLI/test/Command/Shortcode/ResolveUrlCommandTest.php index da0eadc3..d1bc50a3 100644 --- a/module/CLI/test/Command/Shortcode/ResolveUrlCommandTest.php +++ b/module/CLI/test/Command/Shortcode/ResolveUrlCommandTest.php @@ -66,7 +66,7 @@ class ResolveUrlCommandTest extends TestCase 'shortCode' => $shortCode, ]); $output = $this->commandTester->getDisplay(); - $this->assertEquals('Provided short code "' . $shortCode . '" could not be found.' . PHP_EOL, $output); + $this->assertContains('Provided short code "' . $shortCode . '" could not be found.', $output); } /** @@ -83,6 +83,6 @@ class ResolveUrlCommandTest extends TestCase 'shortCode' => $shortCode, ]); $output = $this->commandTester->getDisplay(); - $this->assertEquals('Provided short code "' . $shortCode . '" has an invalid format.' . PHP_EOL, $output); + $this->assertContains('Provided short code "' . $shortCode . '" has an invalid format.', $output); } }