merged branch pborreli/bug-7860 (PR #7863)

This PR was merged into the 2.2 branch.

Discussion
----------

[Console] is not ambiguous anymore if it has a perfect match command name (closes #7860)

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes, locally
| Fixed tickets | #7860
| License       | MIT
| Doc PR        | no

Commits
-------

be34917 [Console] find command even if its name is a namespace too (closes #7860)
This commit is contained in:
Fabien Potencier 2013-04-27 09:33:31 +02:00
commit b4b4326a10
2 changed files with 14 additions and 0 deletions

View File

@ -580,6 +580,10 @@ class Application
return $this->get($abbrevs[$searchName][0]);
}
if (isset($abbrevs[$searchName]) && in_array($searchName, $abbrevs[$searchName])) {
return $this->get($searchName);
}
if (isset($abbrevs[$searchName]) && count($abbrevs[$searchName]) > 1) {
$suggestions = $this->getAbbreviationSuggestions($abbrevs[$searchName]);

View File

@ -219,6 +219,16 @@ class ApplicationTest extends \PHPUnit_Framework_TestCase
}
}
public function testFindCommandEqualNamespace()
{
$application = new Application();
$application->add(new \Foo3Command());
$application->add(new \Foo4Command());
$this->assertInstanceOf('Foo3Command', $application->find('foo3:bar'), '->find() returns the good command even if a namespace has same name');
$this->assertInstanceOf('Foo4Command', $application->find('foo3:bar:toh'), '->find() returns a command even if its namespace equals another command name');
}
public function testFindAlternativeExceptionMessage()
{
$application = new Application();