1
0
Fork 0

Merge pull request #4951 from franzliedke/fl/path-repositories

RepositoryManager::prependRepository()
pull/4952/head
Rob 2016-02-23 17:04:12 +01:00
commit fa572f3452
2 changed files with 28 additions and 0 deletions

View File

@ -89,6 +89,18 @@ class RepositoryManager
$this->repositories[] = $repository;
}
/**
* Adds a repository to the beginning of the chain
*
* This is useful when injecting additional repositories that should trump Packagist, e.g. from a plugin.
*
* @param RepositoryInterface $repository repository instance
*/
public function prependRepository(RepositoryInterface $repository)
{
array_unshift($this->repositories, $repository);
}
/**
* Returns a new repository for a specific installation type.
*

View File

@ -32,6 +32,22 @@ class RepositoryManagerTest extends TestCase
}
}
public function testPrepend()
{
$rm = new RepositoryManager(
$this->getMock('Composer\IO\IOInterface'),
$this->getMock('Composer\Config'),
$this->getMockBuilder('Composer\EventDispatcher\EventDispatcher')->disableOriginalConstructor()->getMock()
);
$repository1 = $this->getMock('Composer\Repository\RepositoryInterface');
$repository2 = $this->getMock('Composer\Repository\RepositoryInterface');
$rm->addRepository($repository1);
$rm->prependRepository($repository2);
$this->assertEquals(array($repository2, $repository1), $rm->getRepositories());
}
/**
* @dataProvider creationCases
*/