fix debug:autowiringcommand

This commit is contained in:
sez-open 2019-03-11 19:17:50 +01:00 committed by Amrouche Hamza
parent 9793522f6e
commit fec4beaffc
No known key found for this signature in database
GPG Key ID: 3B02ADABCFCB29E3
2 changed files with 37 additions and 0 deletions

View File

@ -100,6 +100,7 @@ EOF
$hasAlias = [];
$all = $input->getOption('all');
$previousId = '-';
$serviceIdsNb = 0;
foreach ($serviceIds as $serviceId) {
$text = [];
if (0 !== strpos($serviceId, $previousId)) {
@ -127,11 +128,22 @@ EOF
$serviceLine .= ' - <fg=magenta>deprecated</>';
}
} elseif (!$all) {
++$serviceIdsNb;
continue;
}
$text[] = $serviceLine;
$io->text($text);
}
$io->newLine();
if (0 < $serviceIdsNb) {
$io->text(sprintf('%s more concrete service%s would be displayed when adding the "--all" option.', $serviceIdsNb, $serviceIdsNb > 1 ? 's' : ''));
}
if ($all) {
$io->text('Pro-tip: use interfaces in your type-hints instead of classes to benefit from the dependency inversion principle.');
}
$io->newLine();
}

View File

@ -72,4 +72,29 @@ class DebugAutowiringCommandTest extends WebTestCase
$this->assertContains('No autowirable classes or interfaces found matching "foo_fake"', $tester->getErrorOutput());
$this->assertEquals(1, $tester->getStatusCode());
}
public function testSearchNotAliasedService()
{
static::bootKernel(['test_case' => 'ContainerDebug', 'root_config' => 'config.yml']);
$application = new Application(static::$kernel);
$application->setAutoExit(false);
$tester = new ApplicationTester($application);
$tester->run(['command' => 'debug:autowiring', 'search' => 'redirect']);
$this->assertContains(' more concrete service would be displayed when adding the "--all" option.', $tester->getDisplay());
}
public function testSearchNotAliasedServiceWithAll()
{
static::bootKernel(['test_case' => 'ContainerDebug', 'root_config' => 'config.yml']);
$application = new Application(static::$kernel);
$application->setAutoExit(false);
$tester = new ApplicationTester($application);
$tester->run(['command' => 'debug:autowiring', 'search' => 'redirect', '--all' => true]);
$this->assertContains('Pro-tip: use interfaces in your type-hints instead of classes to benefit from the dependency inversion principle.', $tester->getDisplay());
}
}