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

70 lines
2.1 KiB
PHP
Raw Normal View History

2017-05-19 09:40:42 +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;
use Composer\Repository\RepositoryFactory;
use Composer\Test\TestCase;
2017-05-19 09:40:42 +00:00
class RepositoryFactoryTest extends TestCase
{
public function testManagerWithAllRepositoryTypes()
{
$manager = RepositoryFactory::manager(
$this->getMockBuilder('Composer\IO\IOInterface')->getMock(),
$this->getMockBuilder('Composer\Config')->getMock()
2017-05-19 09:40:42 +00:00
);
$ref = new \ReflectionProperty($manager, 'repositoryClasses');
$ref->setAccessible(true);
$repositoryClasses = $ref->getValue($manager);
2017-05-19 10:36:19 +00:00
$this->assertEquals(array(
2017-05-19 09:40:42 +00:00
'composer',
'vcs',
'package',
'pear',
'git',
2018-01-19 09:51:32 +00:00
'git-bitbucket',
2017-05-19 09:40:42 +00:00
'github',
'gitlab',
'svn',
'fossil',
'perforce',
'hg',
2018-01-19 09:51:32 +00:00
'hg-bitbucket',
2017-05-19 09:40:42 +00:00
'artifact',
'path',
2017-05-19 10:36:19 +00:00
), array_keys($repositoryClasses));
2017-05-19 09:40:42 +00:00
}
/**
* @dataProvider generateRepositoryNameProvider
*/
public function testGenerateRepositoryName($index, array $config, array $existingRepos, $expected)
{
$this->assertSame($expected, RepositoryFactory::generateRepositoryName($index, $config, $existingRepos));
}
public function generateRepositoryNameProvider()
{
return array(
array(0, array(), array(), 0),
array(0, array(), array(array()), '02'),
array(0, array('url' => 'https://example.org'), array(), 'example.org'),
array(0, array('url' => 'https://example.org'), array('example.org' => array()), 'example.org2'),
array('example.org', array('url' => 'https://example.org/repository'), array(), 'example.org'),
array('example.org', array('url' => 'https://example.org/repository'), array('example.org' => array()), 'example.org2'),
);
}
2017-05-19 09:40:42 +00:00
}