From 7501009d741ca7a76dcbcf4ce8a23f51642714b4 Mon Sep 17 00:00:00 2001 From: Bastian Hofmann Date: Sun, 6 May 2012 14:40:47 +0200 Subject: [PATCH 1/2] added tests for PearRepository --- src/Composer/Repository/PearRepository.php | 14 +- .../Test/Repository/PearRepositoryTest.php | 123 ++++++++++++++++++ 2 files changed, 130 insertions(+), 7 deletions(-) create mode 100644 tests/Composer/Test/Repository/PearRepositoryTest.php diff --git a/src/Composer/Repository/PearRepository.php b/src/Composer/Repository/PearRepository.php index 14150d84d..1b1a54e3c 100644 --- a/src/Composer/Repository/PearRepository.php +++ b/src/Composer/Repository/PearRepository.php @@ -74,7 +74,7 @@ class PearRepository extends ArrayRepository } $this->addPackage($loader->load($rev)); if ($this->io->isVerbose()) { - $this->io->write('Loaded '.$packageData['name'].' '.$packageData['version']); + $this->io->write('Loaded '. $data['name'].' '. $data['version']); } } } @@ -126,7 +126,7 @@ class PearRepository extends ArrayRepository /** * @param string $categoryLink * @throws TransportException - * @throws InvalidArgumentException + * @throws \InvalidArgumentException */ private function fetchPearPackages($categoryLink) { @@ -212,7 +212,7 @@ class PearRepository extends ArrayRepository /** * @todo Improve dependencies resolution of pear packages. - * @param array $options + * @param array $depsOptions * @return array */ private function parseDependenciesOptions(array $depsOptions) @@ -257,7 +257,7 @@ class PearRepository extends ArrayRepository /** * @param string $deps * @return array - * @throws InvalidArgumentException + * @throws \InvalidArgumentException */ private function parseDependencies($deps) { @@ -284,7 +284,7 @@ class PearRepository extends ArrayRepository /** * @param string $packagesLink * @return void - * @throws InvalidArgumentException + * @throws \InvalidArgumentException */ private function fetchPear2Packages($packagesLink) { @@ -358,7 +358,7 @@ class PearRepository extends ArrayRepository /** * @param string $url - * @return DOMDocument + * @return \DOMDocument */ private function requestXml($url) { @@ -367,7 +367,7 @@ class PearRepository extends ArrayRepository throw new \UnexpectedValueException('The PEAR channel at '.$url.' did not respond.'); } $dom = new \DOMDocument('1.0', 'UTF-8'); - $dom->loadXML($content, LIBXML_NOERROR); + $dom->loadXML($content); return $dom; } diff --git a/tests/Composer/Test/Repository/PearRepositoryTest.php b/tests/Composer/Test/Repository/PearRepositoryTest.php new file mode 100644 index 000000000..ab67a77c8 --- /dev/null +++ b/tests/Composer/Test/Repository/PearRepositoryTest.php @@ -0,0 +1,123 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Repository; + +use Composer\Repository\FilesystemRepository; +use Composer\Test\TestCase; + +class PearRepositoryTest extends TestCase { + + /** + * @var PearRepository + */ + private $repository; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + private $remoteFilesystem; + + /** + * @dataProvider repositoryDataProvider + * @param string $url + * @param array $expectedPackages + */ + public function testRepositoryRead($url, array $expectedPackages) { + $repoConfig = array( + 'url' => $url + ); + + $this->createRepository($repoConfig); + + foreach ($expectedPackages as $expectedPackage) { + $this->assertInstanceOf('Composer\Package\PackageInterface', + $this->repository->findPackage($expectedPackage['name'], $expectedPackage['version']), + 'Expected package ' . $expectedPackage['name'] . ', version ' . $expectedPackage['version'] . + ' not found in pear channel ' . $url + ); + } + + } + + public function repositoryDataProvider() { + return array( + array( + 'pear.phpunit.de', + array( + array('name' => 'pear-phpunit/PHPUnit_MockObject', 'version' => '1.1.1'), + array('name' => 'pear-phpunit/PHPUnit', 'version' => '3.6.10'), + ) + ), + array( + 'pear.php.net', + array( + array('name' => 'pear-pear/PEAR', 'version' => '1.9.4'), + ) + ), + array( + 'pear.pdepend.org', + array( + array('name' => 'pear-pdepend/PHP_Depend', 'version' => '1.0.5'), + ) + ), + array( + 'pear.phpmd.org', + array( + array('name' => 'pear-phpmd/PHP_PMD', 'version' => '1.3.3'), + ) + ), + array( + 'pear.doctrine-project.org', + array( + array('name' => 'pear-doctrine/DoctrineORM', 'version' => '2.2.2'), + ) + ), + array( + 'pear.symfony-project.com', + array( + array('name' => 'pear-symfony/YAML', 'version' => '1.0.6'), + ) + ), + array( + 'pear.pirum-project.org', + array( + array('name' => 'pear-pirum/Pirum', 'version' => '1.1.4'), + ) + ), + array( + 'packages.zendframework.com', + array( + array('name' => 'pear-zf2/Zend_Code', 'version' => '2.0.0.0-beta3'), + ) + ), + ); + } + + private function createRepository($repoConfig) { + $ioInterface = $this->getMockBuilder('Composer\IO\IOInterface') + ->getMock(); + + $config = new \Composer\Config(); + + $this->remoteFilesystem = $this->getMockBuilder('Composer\Util\RemoteFilesystem') + ->disableOriginalConstructor() + ->getMock(); + + $this->repository = new PearRepository($repoConfig, $ioInterface, $config, null); + } + + protected function tearDown() { + $this->repository = null; + $this->remoteFilesystem = null; + } +} \ No newline at end of file From 6d5d3af297a68127d8b20dbd84e601d75ae5c2e4 Mon Sep 17 00:00:00 2001 From: Bastian Hofmann Date: Sun, 6 May 2012 14:55:08 +0200 Subject: [PATCH 2/2] coding standard compliance --- .../Test/Repository/PearRepositoryTest.php | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/tests/Composer/Test/Repository/PearRepositoryTest.php b/tests/Composer/Test/Repository/PearRepositoryTest.php index ab67a77c8..fd353d7ff 100644 --- a/tests/Composer/Test/Repository/PearRepositoryTest.php +++ b/tests/Composer/Test/Repository/PearRepositoryTest.php @@ -15,7 +15,8 @@ namespace Composer\Repository; use Composer\Repository\FilesystemRepository; use Composer\Test\TestCase; -class PearRepositoryTest extends TestCase { +class PearRepositoryTest extends TestCase +{ /** * @var PearRepository @@ -32,7 +33,8 @@ class PearRepositoryTest extends TestCase { * @param string $url * @param array $expectedPackages */ - public function testRepositoryRead($url, array $expectedPackages) { + public function testRepositoryRead($url, array $expectedPackages) + { $repoConfig = array( 'url' => $url ); @@ -46,10 +48,10 @@ class PearRepositoryTest extends TestCase { ' not found in pear channel ' . $url ); } - } - public function repositoryDataProvider() { + public function repositoryDataProvider() + { return array( array( 'pear.phpunit.de', @@ -103,7 +105,8 @@ class PearRepositoryTest extends TestCase { ); } - private function createRepository($repoConfig) { + private function createRepository($repoConfig) + { $ioInterface = $this->getMockBuilder('Composer\IO\IOInterface') ->getMock(); @@ -116,7 +119,8 @@ class PearRepositoryTest extends TestCase { $this->repository = new PearRepository($repoConfig, $ioInterface, $config, null); } - protected function tearDown() { + protected function tearDown() + { $this->repository = null; $this->remoteFilesystem = null; }