PearRepositoryTest.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <?php
  2. /*
  3. * This file is part of Composer.
  4. *
  5. * (c) Nils Adermann <naderman@naderman.de>
  6. * Jordi Boggiano <j.boggiano@seld.be>
  7. *
  8. * For the full copyright and license information, please view the LICENSE
  9. * file that was distributed with this source code.
  10. */
  11. namespace Composer\Repository;
  12. use Composer\Repository\FilesystemRepository;
  13. use Composer\Test\TestCase;
  14. /**
  15. * @group slow
  16. */
  17. class PearRepositoryTest extends TestCase
  18. {
  19. /**
  20. * @var PearRepository
  21. */
  22. private $repository;
  23. /**
  24. * @var \PHPUnit_Framework_MockObject_MockObject
  25. */
  26. private $remoteFilesystem;
  27. /**
  28. * @dataProvider repositoryDataProvider
  29. * @param string $url
  30. * @param array $expectedPackages
  31. */
  32. public function testRepositoryRead($url, array $expectedPackages)
  33. {
  34. $repoConfig = array(
  35. 'url' => $url
  36. );
  37. $this->createRepository($repoConfig);
  38. foreach ($expectedPackages as $expectedPackage) {
  39. $this->assertInstanceOf('Composer\Package\PackageInterface',
  40. $this->repository->findPackage($expectedPackage['name'], $expectedPackage['version']),
  41. 'Expected package ' . $expectedPackage['name'] . ', version ' . $expectedPackage['version'] .
  42. ' not found in pear channel ' . $url
  43. );
  44. }
  45. }
  46. public function repositoryDataProvider()
  47. {
  48. return array(
  49. array(
  50. 'pear.phpunit.de',
  51. array(
  52. array('name' => 'pear-phpunit/PHPUnit_MockObject', 'version' => '1.1.1'),
  53. array('name' => 'pear-phpunit/PHPUnit', 'version' => '3.6.10'),
  54. )
  55. ),
  56. array(
  57. 'pear.php.net',
  58. array(
  59. array('name' => 'pear-pear/PEAR', 'version' => '1.9.4'),
  60. )
  61. ),
  62. array(
  63. 'pear.pdepend.org',
  64. array(
  65. array('name' => 'pear-pdepend/PHP_Depend', 'version' => '1.0.5'),
  66. )
  67. ),
  68. array(
  69. 'pear.phpmd.org',
  70. array(
  71. array('name' => 'pear-phpmd/PHP_PMD', 'version' => '1.3.3'),
  72. )
  73. ),
  74. array(
  75. 'pear.doctrine-project.org',
  76. array(
  77. array('name' => 'pear-doctrine/DoctrineORM', 'version' => '2.2.2'),
  78. )
  79. ),
  80. array(
  81. 'pear.symfony-project.com',
  82. array(
  83. array('name' => 'pear-symfony/YAML', 'version' => '1.0.6'),
  84. )
  85. ),
  86. array(
  87. 'pear.pirum-project.org',
  88. array(
  89. array('name' => 'pear-pirum/Pirum', 'version' => '1.1.4'),
  90. )
  91. ),
  92. array(
  93. 'packages.zendframework.com',
  94. array(
  95. array('name' => 'pear-zf2/Zend_Code', 'version' => '2.0.0.0-beta3'),
  96. )
  97. ),
  98. );
  99. }
  100. private function createRepository($repoConfig)
  101. {
  102. $ioInterface = $this->getMockBuilder('Composer\IO\IOInterface')
  103. ->getMock();
  104. $config = new \Composer\Config();
  105. $this->remoteFilesystem = $this->getMockBuilder('Composer\Util\RemoteFilesystem')
  106. ->disableOriginalConstructor()
  107. ->getMock();
  108. $this->repository = new PearRepository($repoConfig, $ioInterface, $config, null);
  109. }
  110. protected function tearDown()
  111. {
  112. $this->repository = null;
  113. $this->remoteFilesystem = null;
  114. }
  115. }