1
0
Fork 0
mirror of https://github.com/composer/composer synced 2025-05-09 00:22:53 +00:00

Move VersionParser::parseLinks() to ArrayLoader::parseLinks()

Working towards #3545.

parseLinks is a wrapper around VersionParser::parseConstraints() that
creates Link objects, and better belongs in ArrayLoader.
This commit is contained in:
Kunal Mehta 2015-07-03 19:35:54 -07:00
parent 2438105e11
commit 14d1f0f3f6
5 changed files with 79 additions and 62 deletions

View file

@ -17,6 +17,12 @@ use Composer\Package\Dumper\ArrayDumper;
class ArrayLoaderTest extends \PHPUnit_Framework_TestCase
{
/**
* @var ArrayLoader
*/
private $loader;
public function setUp()
{
$this->loader = new ArrayLoader(null, true);
@ -207,4 +213,44 @@ class ArrayLoaderTest extends \PHPUnit_Framework_TestCase
$package = $this->loader->load($config);
$this->assertFalse($package->isAbandoned());
}
public function pluginApiVersions()
{
return array(
array('1.0'),
array('1.0.0'),
array('1.0.0.0'),
array('1'),
array('=1.0.0'),
array('==1.0'),
array('~1.0.0'),
array('*'),
array('3.0.*'),
array('@stable'),
array('1.0.0@stable'),
array('^5.1'),
array('>=1.0.0 <2.5'),
array('x'),
array('1.0.0-dev'),
);
}
/**
* @dataProvider pluginApiVersions
*/
public function testPluginApiVersionAreKeptAsDeclared($apiVersion)
{
$links = $this->loader->parseLinks('Plugin', '9.9.9', '', array('composer-plugin-api' => $apiVersion));
$this->assertArrayHasKey('composer-plugin-api', $links);
$this->assertSame($apiVersion, $links['composer-plugin-api']->getConstraint()->getPrettyString());
}
public function testPluginApiVersionDoesSupportSelfVersion()
{
$links = $this->loader->parseLinks('Plugin', '6.6.6', '', array('composer-plugin-api' => 'self.version'));
$this->assertArrayHasKey('composer-plugin-api', $links);
$this->assertSame('6.6.6', $links['composer-plugin-api']->getConstraint()->getPrettyString());
}
}