friendica-addons/advancedcontentfilter/vendor/fxp/composer-asset-plugin/Tests/Repository/AssetRepositoryManagerTest.php
Hypolite Petovan 20862be7d0 [advancedcontentfilter] Add Composer dependencies
- slim/slim: ^3.1
- symfony/expression-language: ^3.4
- fxp/composer-asset-plugin: ~1.3
- bower-asset/vue: ^2.5
- bower-asset/vue-resource: ^1.5
2018-04-16 22:11:51 -04:00

143 lines
4.2 KiB
PHP

<?php
/*
* This file is part of the Fxp Composer Asset Plugin package.
*
* (c) François Pluchino <francois.pluchino@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Fxp\Composer\AssetPlugin\Tests\Repository;
use Composer\DependencyResolver\Pool;
use Composer\IO\IOInterface;
use Composer\Repository\RepositoryInterface;
use Composer\Repository\RepositoryManager;
use Fxp\Composer\AssetPlugin\Config\Config;
use Fxp\Composer\AssetPlugin\Repository\AssetRepositoryManager;
use Fxp\Composer\AssetPlugin\Repository\ResolutionManager;
use Fxp\Composer\AssetPlugin\Repository\VcsPackageFilter;
/**
* Tests of Asset Repository Manager.
*
* @author François Pluchino <francois.pluchino@gmail.com>
*/
class AssetRepositoryManagerTest extends \PHPUnit_Framework_TestCase
{
/**
* @var RepositoryManager|\PHPUnit_Framework_MockObject_MockObject
*/
protected $rm;
/**
* @var IOInterface|\PHPUnit_Framework_MockObject_MockObject
*/
protected $io;
/**
* @var Config
*/
protected $config;
/**
* @var VcsPackageFilter|\PHPUnit_Framework_MockObject_MockObject
*/
protected $filter;
/**
* @var ResolutionManager|\PHPUnit_Framework_MockObject_MockObject
*/
protected $resolutionManager;
/**
* @var AssetRepositoryManager
*/
protected $assetRepositoryManager;
protected function setUp()
{
$this->io = $this->getMockBuilder(IOInterface::class)->getMock();
$this->rm = $this->getMockBuilder(RepositoryManager::class)->disableOriginalConstructor()->getMock();
$this->config = new Config(array());
$this->filter = $this->getMockBuilder(VcsPackageFilter::class)->disableOriginalConstructor()->getMock();
$this->resolutionManager = $this->getMockBuilder(ResolutionManager::class)->getMock();
$this->assetRepositoryManager = new AssetRepositoryManager($this->io, $this->rm, $this->config, $this->filter);
}
public function getDataForSolveResolutions()
{
return array(
array(true),
array(false),
);
}
/**
* @dataProvider getDataForSolveResolutions
*
* @param bool $withResolutionManager
*/
public function testSolveResolutions($withResolutionManager)
{
$expected = array(
'name' => 'foo/bar',
);
if ($withResolutionManager) {
$this->assetRepositoryManager->setResolutionManager($this->resolutionManager);
$this->resolutionManager->expects($this->once())
->method('solveResolutions')
->with($expected)
->willReturn($expected);
} else {
$this->resolutionManager->expects($this->never())
->method('solveResolutions');
}
$data = $this->assetRepositoryManager->solveResolutions($expected);
$this->assertSame($expected, $data);
}
public function testAddRepositoryInPool()
{
$repos = array(
array(
'name' => 'foo/bar',
'type' => 'asset-vcs',
'url' => 'https://github.com/helloguest/helloguest-ui-app.git',
),
);
$repoConfigExpected = array_merge($repos[0], array(
'asset-repository-manager' => $this->assetRepositoryManager,
'vcs-package-filter' => $this->filter,
));
$repo = $this->getMockBuilder(RepositoryInterface::class)->getMock();
$this->rm->expects($this->once())
->method('createRepository')
->with('asset-vcs', $repoConfigExpected)
->willReturn($repo);
$this->assetRepositoryManager->addRepositories($repos);
/* @var Pool|\PHPUnit_Framework_MockObject_MockObject $pool */
$pool = $this->getMockBuilder(Pool::class)->disableOriginalConstructor()->getMock();
$pool->expects($this->once())
->method('addRepository')
->with($repo);
$this->assetRepositoryManager->setPool($pool);
}
public function testGetConfig()
{
$this->assertSame($this->config, $this->assetRepositoryManager->getConfig());
}
}