1
0
Fork 0
composer/tests/Composer/Test/Repository/PearRepositoryTest.php

147 lines
4.3 KiB
PHP
Raw Normal View History

2012-05-06 12:40:47 +00:00
<?php
/*
* This file is part of Composer.
*
* (c) Nils Adermann <naderman@naderman.de>
* Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Composer\Test\Repository;
2012-05-06 12:40:47 +00:00
use Composer\Repository\PearRepository;
2013-09-25 08:14:42 +00:00
use Composer\TestCase;
2012-05-06 12:40:47 +00:00
/**
* @group legacy
*/
2012-05-06 12:55:08 +00:00
class PearRepositoryTest extends TestCase
{
2012-05-06 12:40:47 +00:00
/**
* @var PearRepository
*/
private $repository;
/**
* @var \PHPUnit_Framework_MockObject_MockObject
*/
private $remoteFilesystem;
public function testComposerShouldSetIncludePath()
{
$url = 'pear.phpmd.org';
if (!@file_get_contents('http://'.$url)) {
$this->markTestSkipped('Repository '.$url.' appears to be unreachable');
}
$expectedPackages = array(
array('name' => 'pear-pear.phpmd.org/PHP_PMD', 'version' => '1.3.3'),
);
$repoConfig = array(
2015-09-28 09:51:14 +00:00
'url' => $url,
);
$this->createRepository($repoConfig);
foreach ($expectedPackages as $expectedPackage) {
$package = $this->repository->findPackage($expectedPackage['name'], $expectedPackage['version']);
$this->assertInstanceOf('Composer\Package\PackageInterface',
$package,
'Expected package ' . $expectedPackage['name'] . ', version ' . $expectedPackage['version'] .
' not found in pear channel ' . $url
);
$this->assertSame(array('/'), $package->getIncludePaths());
}
}
2012-05-06 12:40:47 +00:00
/**
* @dataProvider repositoryDataProvider
* @param string $url
* @param array $expectedPackages
2012-05-06 12:40:47 +00:00
*/
2012-05-06 12:55:08 +00:00
public function testRepositoryRead($url, array $expectedPackages)
{
2012-05-06 12:40:47 +00:00
$repoConfig = array(
2015-09-28 09:51:14 +00:00
'url' => $url,
2012-05-06 12:40:47 +00:00
);
if (!@file_get_contents('http://'.$url)) {
$this->markTestSkipped('Repository '.$url.' appears to be unreachable');
}
2012-05-06 12:40:47 +00:00
$this->createRepository($repoConfig);
2012-05-06 12:40:47 +00:00
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
);
}
}
2012-05-06 12:55:08 +00:00
public function repositoryDataProvider()
{
2012-05-06 12:40:47 +00:00
return array(
array(
'pear.php.net',
array(
array('name' => 'pear-pear.php.net/PEAR', 'version' => '1.9.4'),
2015-09-28 09:51:14 +00:00
),
2012-05-06 12:40:47 +00:00
),
array(
'pear.pdepend.org',
array(
array('name' => 'pear-pear.pdepend.org/PHP_Depend', 'version' => '1.0.5'),
2015-09-28 09:51:14 +00:00
),
2012-05-06 12:40:47 +00:00
),
array(
'pear.phpmd.org',
array(
array('name' => 'pear-pear.phpmd.org/PHP_PMD', 'version' => '1.3.3'),
2015-09-28 09:51:14 +00:00
),
2012-05-06 12:40:47 +00:00
),
array(
'pear.doctrine-project.org',
array(
array('name' => 'pear-pear.doctrine-project.org/DoctrineORM', 'version' => '2.2.2'),
2015-09-28 09:51:14 +00:00
),
2012-05-06 12:40:47 +00:00
),
array(
'pear.symfony-project.com',
array(
array('name' => 'pear-pear.symfony-project.com/YAML', 'version' => '1.0.6'),
2015-09-28 09:51:14 +00:00
),
2012-05-06 12:40:47 +00:00
),
array(
'pear.pirum-project.org',
array(
array('name' => 'pear-pear.pirum-project.org/Pirum', 'version' => '1.1.4'),
2015-09-28 09:51:14 +00:00
),
2012-05-06 12:40:47 +00:00
),
);
}
2012-05-06 12:55:08 +00:00
private function createRepository($repoConfig)
{
2012-05-06 12:40:47 +00:00
$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);
}
2012-05-06 12:55:08 +00:00
protected function tearDown()
{
2012-05-06 12:40:47 +00:00
$this->repository = null;
$this->remoteFilesystem = null;
}
}