Update/add tests
parent
53191eb0fe
commit
e922404f19
|
@ -14,6 +14,8 @@ namespace Composer\Test\Package\Dumper;
|
||||||
|
|
||||||
use Composer\Package\Dumper\ArrayDumper;
|
use Composer\Package\Dumper\ArrayDumper;
|
||||||
use Composer\Package\MemoryPackage;
|
use Composer\Package\MemoryPackage;
|
||||||
|
use Composer\Package\Link;
|
||||||
|
use Composer\Package\LinkConstraint\VersionConstraint;
|
||||||
|
|
||||||
class ArrayDumperTest extends \PHPUnit_Framework_TestCase
|
class ArrayDumperTest extends \PHPUnit_Framework_TestCase
|
||||||
{
|
{
|
||||||
|
@ -27,13 +29,13 @@ class ArrayDumperTest extends \PHPUnit_Framework_TestCase
|
||||||
$package = new MemoryPackage('foo', '1.0.0.0', '1.0');
|
$package = new MemoryPackage('foo', '1.0.0.0', '1.0');
|
||||||
|
|
||||||
$config = $this->dumper->dump($package);
|
$config = $this->dumper->dump($package);
|
||||||
$this->assertEquals(array('name', 'version', 'version_normalized', 'type', 'names'), array_keys($config));
|
$this->assertEquals(array('name', 'version', 'version_normalized', 'type'), array_keys($config));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @dataProvider getKeys
|
* @dataProvider getKeys
|
||||||
*/
|
*/
|
||||||
public function testKeys($key, $value, $expectedValue = null, $method = null)
|
public function testKeys($key, $value, $method = null, $expectedValue = null)
|
||||||
{
|
{
|
||||||
$package = new MemoryPackage('foo', '1.0.0.0', '1.0');
|
$package = new MemoryPackage('foo', '1.0.0.0', '1.0');
|
||||||
|
|
||||||
|
@ -50,17 +52,70 @@ class ArrayDumperTest extends \PHPUnit_Framework_TestCase
|
||||||
public function getKeys()
|
public function getKeys()
|
||||||
{
|
{
|
||||||
return array(
|
return array(
|
||||||
array('time', new \DateTime('2012-02-01'), '2012-02-01 00:00:00', 'ReleaseDate'),
|
array(
|
||||||
array('authors', array('Nils Adermann <naderman@naderman.de>', 'Jordi Boggiano <j.boggiano@seld.be>')),
|
'time',
|
||||||
array('homepage', 'http://getcomposer.org'),
|
new \DateTime('2012-02-01'),
|
||||||
array('description', 'Package Manager'),
|
'ReleaseDate',
|
||||||
array('keywords', array('package', 'dependency', 'autoload')),
|
'2012-02-01 00:00:00',
|
||||||
array('bin', array('bin/composer'), null, 'binaries'),
|
),
|
||||||
array('license', array('MIT')),
|
array(
|
||||||
array('autoload', array('psr-0' => array('Composer' => 'src/'))),
|
'authors',
|
||||||
array('repositories', array('packagist' => false)),
|
array('Nils Adermann <naderman@naderman.de>', 'Jordi Boggiano <j.boggiano@seld.be>')
|
||||||
array('scripts', array('post-update-cmd' => 'MyVendor\\MyClass::postUpdate')),
|
),
|
||||||
array('extra', array('class' => 'MyVendor\\Installer')),
|
array(
|
||||||
|
'homepage',
|
||||||
|
'http://getcomposer.org'
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'description',
|
||||||
|
'Package Manager'
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'keywords',
|
||||||
|
array('package', 'dependency', 'autoload')
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'bin',
|
||||||
|
array('bin/composer'),
|
||||||
|
'binaries'
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'license',
|
||||||
|
array('MIT')
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'autoload',
|
||||||
|
array('psr-0' => array('Composer' => 'src/'))
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'repositories',
|
||||||
|
array('packagist' => false)
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'scripts',
|
||||||
|
array('post-update-cmd' => 'MyVendor\\MyClass::postUpdate')
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'extra',
|
||||||
|
array('class' => 'MyVendor\\Installer')
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'require',
|
||||||
|
array(new Link('foo', 'foo/bar', new VersionConstraint('=', '1.0.0.0'), 'requires', '1.0.0')),
|
||||||
|
'requires',
|
||||||
|
array('foo/bar' => '1.0.0'),
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'require-dev',
|
||||||
|
array(new Link('foo', 'foo/bar', new VersionConstraint('=', '1.0.0.0'), 'requires (for development)', '1.0.0')),
|
||||||
|
'devRequires',
|
||||||
|
array('foo/bar' => '1.0.0'),
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'suggest',
|
||||||
|
array('foo/bar' => 'very useful package'),
|
||||||
|
'suggests'
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
namespace Composer\Test\Package\Loader;
|
namespace Composer\Test\Package\Loader;
|
||||||
|
|
||||||
use Composer\Package\Loader\ArrayLoader;
|
use Composer\Package\Loader\ArrayLoader;
|
||||||
|
use Composer\Package\Dumper\ArrayDumper;
|
||||||
|
|
||||||
class ArrayLoaderTest extends \PHPUnit_Framework_TestCase
|
class ArrayLoaderTest extends \PHPUnit_Framework_TestCase
|
||||||
{
|
{
|
||||||
|
@ -35,4 +36,88 @@ class ArrayLoaderTest extends \PHPUnit_Framework_TestCase
|
||||||
$replaces = $package->getReplaces();
|
$replaces = $package->getReplaces();
|
||||||
$this->assertEquals('== 1.2.3.4', (string) $replaces[0]->getConstraint());
|
$this->assertEquals('== 1.2.3.4', (string) $replaces[0]->getConstraint());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testTypeDefault()
|
||||||
|
{
|
||||||
|
$config = array(
|
||||||
|
'name' => 'A',
|
||||||
|
'version' => '1.0',
|
||||||
|
);
|
||||||
|
|
||||||
|
$package = $this->loader->load($config);
|
||||||
|
$this->assertEquals('library', $package->getType());
|
||||||
|
|
||||||
|
$config = array(
|
||||||
|
'name' => 'A',
|
||||||
|
'version' => '1.0',
|
||||||
|
'type' => 'foo',
|
||||||
|
);
|
||||||
|
|
||||||
|
$package = $this->loader->load($config);
|
||||||
|
$this->assertEquals('foo', $package->getType());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testNormalizedVersionOptimization()
|
||||||
|
{
|
||||||
|
$config = array(
|
||||||
|
'name' => 'A',
|
||||||
|
'version' => '1.2.3',
|
||||||
|
);
|
||||||
|
|
||||||
|
$package = $this->loader->load($config);
|
||||||
|
$this->assertEquals('1.2.3.0', $package->getVersion());
|
||||||
|
|
||||||
|
$config = array(
|
||||||
|
'name' => 'A',
|
||||||
|
'version' => '1.2.3',
|
||||||
|
'version_normalized' => '1.2.3.4',
|
||||||
|
);
|
||||||
|
|
||||||
|
$package = $this->loader->load($config);
|
||||||
|
$this->assertEquals('1.2.3.4', $package->getVersion());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testParseDump()
|
||||||
|
{
|
||||||
|
$config = array(
|
||||||
|
'name' => 'A/B',
|
||||||
|
'version' => '1.2.3',
|
||||||
|
'version_normalized' => '1.2.3.0',
|
||||||
|
'description' => 'Foo bar',
|
||||||
|
'type' => 'library',
|
||||||
|
'keywords' => array('a', 'b', 'c'),
|
||||||
|
'homepage' => 'http://example.com',
|
||||||
|
'license' => array('MIT', 'GPLv3'),
|
||||||
|
'authors' => array(
|
||||||
|
array('name' => 'Bob', 'email' => 'bob@example.org', 'homepage' => 'example.org'),
|
||||||
|
),
|
||||||
|
'require' => array(
|
||||||
|
'foo/bar' => '1.0',
|
||||||
|
),
|
||||||
|
'require-dev' => array(
|
||||||
|
'foo/baz' => '1.0',
|
||||||
|
),
|
||||||
|
'replace' => array(
|
||||||
|
'foo/qux' => '1.0',
|
||||||
|
),
|
||||||
|
'conflict' => array(
|
||||||
|
'foo/quux' => '1.0',
|
||||||
|
),
|
||||||
|
'provide' => array(
|
||||||
|
'foo/quuux' => '1.0',
|
||||||
|
),
|
||||||
|
'autoload' => array(
|
||||||
|
'psr-0' => array('Ns\Prefix' => 'path'),
|
||||||
|
'classmap' => array('path', 'path2'),
|
||||||
|
),
|
||||||
|
'include-path' => array('path3', 'path4'),
|
||||||
|
'target-dir' => 'some/prefix',
|
||||||
|
'extra' => array('random' => array('things' => 'of', 'any' => 'shape')),
|
||||||
|
'bin' => array('bin1', 'bin/foo'),
|
||||||
|
);
|
||||||
|
|
||||||
|
$package = $this->loader->load($config);
|
||||||
|
$dumper = new ArrayDumper;
|
||||||
|
$this->assertEquals($config, $dumper->dump($package));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,7 +95,7 @@ class FilesystemRepositoryTest extends TestCase
|
||||||
->expects($this->once())
|
->expects($this->once())
|
||||||
->method('write')
|
->method('write')
|
||||||
->with(array(
|
->with(array(
|
||||||
array('name' => 'mypkg', 'type' => 'library', 'names' => array('mypkg'), 'version' => '0.1.10', 'version_normalized' => '0.1.10.0')
|
array('name' => 'mypkg', 'type' => 'library', 'version' => '0.1.10', 'version_normalized' => '0.1.10.0')
|
||||||
));
|
));
|
||||||
|
|
||||||
$repository->addPackage($this->getPackage('mypkg', '0.1.10'));
|
$repository->addPackage($this->getPackage('mypkg', '0.1.10'));
|
||||||
|
|
Loading…
Reference in New Issue