From e922404f191316cda27dcfa81473de0e5323c6c1 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Sat, 14 Apr 2012 11:56:13 +0200 Subject: [PATCH] Update/add tests --- .../Test/Package/Dumper/ArrayDumperTest.php | 81 +++++++++++++++--- .../Test/Package/Loader/ArrayLoaderTest.php | 85 +++++++++++++++++++ .../Repository/FilesystemRepositoryTest.php | 2 +- 3 files changed, 154 insertions(+), 14 deletions(-) diff --git a/tests/Composer/Test/Package/Dumper/ArrayDumperTest.php b/tests/Composer/Test/Package/Dumper/ArrayDumperTest.php index eab3450bf..2396fbfc9 100644 --- a/tests/Composer/Test/Package/Dumper/ArrayDumperTest.php +++ b/tests/Composer/Test/Package/Dumper/ArrayDumperTest.php @@ -14,6 +14,8 @@ namespace Composer\Test\Package\Dumper; use Composer\Package\Dumper\ArrayDumper; use Composer\Package\MemoryPackage; +use Composer\Package\Link; +use Composer\Package\LinkConstraint\VersionConstraint; 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'); $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 */ - 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'); @@ -50,17 +52,70 @@ class ArrayDumperTest extends \PHPUnit_Framework_TestCase public function getKeys() { return array( - array('time', new \DateTime('2012-02-01'), '2012-02-01 00:00:00', 'ReleaseDate'), - array('authors', array('Nils Adermann ', 'Jordi Boggiano ')), - array('homepage', 'http://getcomposer.org'), - array('description', 'Package Manager'), - array('keywords', array('package', 'dependency', 'autoload')), - array('bin', array('bin/composer'), null, '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( + 'time', + new \DateTime('2012-02-01'), + 'ReleaseDate', + '2012-02-01 00:00:00', + ), + array( + 'authors', + array('Nils Adermann ', 'Jordi Boggiano ') + ), + 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' + ), ); } } diff --git a/tests/Composer/Test/Package/Loader/ArrayLoaderTest.php b/tests/Composer/Test/Package/Loader/ArrayLoaderTest.php index 98c595243..0bee2bf1a 100644 --- a/tests/Composer/Test/Package/Loader/ArrayLoaderTest.php +++ b/tests/Composer/Test/Package/Loader/ArrayLoaderTest.php @@ -13,6 +13,7 @@ namespace Composer\Test\Package\Loader; use Composer\Package\Loader\ArrayLoader; +use Composer\Package\Dumper\ArrayDumper; class ArrayLoaderTest extends \PHPUnit_Framework_TestCase { @@ -35,4 +36,88 @@ class ArrayLoaderTest extends \PHPUnit_Framework_TestCase $replaces = $package->getReplaces(); $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)); + } } diff --git a/tests/Composer/Test/Repository/FilesystemRepositoryTest.php b/tests/Composer/Test/Repository/FilesystemRepositoryTest.php index c9abcdb76..fee07dfc8 100644 --- a/tests/Composer/Test/Repository/FilesystemRepositoryTest.php +++ b/tests/Composer/Test/Repository/FilesystemRepositoryTest.php @@ -95,7 +95,7 @@ class FilesystemRepositoryTest extends TestCase ->expects($this->once()) ->method('write') ->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'));