2015-10-27 02:59:05 +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\Package;
|
|
|
|
|
|
|
|
use Composer\Package\Link;
|
|
|
|
use Composer\Package\RootAliasPackage;
|
2021-12-10 11:57:08 +00:00
|
|
|
use Composer\Package\RootPackage;
|
2020-06-05 14:41:37 +00:00
|
|
|
use Composer\Semver\Constraint\MatchAllConstraint;
|
2018-11-12 14:23:32 +00:00
|
|
|
use Composer\Test\TestCase;
|
2021-12-10 11:57:08 +00:00
|
|
|
use PHPUnit\Framework\MockObject\MockObject;
|
2015-10-27 02:59:05 +00:00
|
|
|
|
|
|
|
class RootAliasPackageTest extends TestCase
|
|
|
|
{
|
2022-02-18 09:38:54 +00:00
|
|
|
public function testUpdateRequires(): void
|
2015-10-27 02:59:05 +00:00
|
|
|
{
|
2021-12-10 11:57:08 +00:00
|
|
|
$links = array(new Link('a', 'b', new MatchAllConstraint(), Link::TYPE_REQUIRE, 'self.version'));
|
|
|
|
|
|
|
|
$root = $this->getMockRootPackage();
|
|
|
|
$root->expects($this->once())
|
|
|
|
->method('setRequires')
|
|
|
|
->with($this->equalTo($links));
|
2015-10-27 02:59:05 +00:00
|
|
|
|
2021-12-10 11:57:08 +00:00
|
|
|
$alias = new RootAliasPackage($root, '1.0', '1.0.0.0');
|
2015-10-27 02:59:05 +00:00
|
|
|
$this->assertEmpty($alias->getRequires());
|
|
|
|
$alias->setRequires($links);
|
|
|
|
$this->assertNotEmpty($alias->getRequires());
|
|
|
|
}
|
|
|
|
|
2022-02-18 09:38:54 +00:00
|
|
|
public function testUpdateDevRequires(): void
|
2015-10-27 02:59:05 +00:00
|
|
|
{
|
2021-12-10 11:57:08 +00:00
|
|
|
$links = array(new Link('a', 'b', new MatchAllConstraint(), Link::TYPE_DEV_REQUIRE, 'self.version'));
|
2015-10-27 02:59:05 +00:00
|
|
|
|
2021-12-10 11:57:08 +00:00
|
|
|
$root = $this->getMockRootPackage();
|
|
|
|
$root->expects($this->once())
|
|
|
|
->method('setDevRequires')
|
|
|
|
->with($this->equalTo($links));
|
|
|
|
|
|
|
|
$alias = new RootAliasPackage($root, '1.0', '1.0.0.0');
|
2015-10-27 02:59:05 +00:00
|
|
|
$this->assertEmpty($alias->getDevRequires());
|
|
|
|
$alias->setDevRequires($links);
|
|
|
|
$this->assertNotEmpty($alias->getDevRequires());
|
|
|
|
}
|
|
|
|
|
2022-02-18 09:38:54 +00:00
|
|
|
public function testUpdateConflicts(): void
|
2015-10-27 02:59:05 +00:00
|
|
|
{
|
2021-12-10 11:57:08 +00:00
|
|
|
$links = array(new Link('a', 'b', new MatchAllConstraint(), Link::TYPE_CONFLICT, 'self.version'));
|
|
|
|
|
|
|
|
$root = $this->getMockRootPackage();
|
|
|
|
$root->expects($this->once())
|
|
|
|
->method('setConflicts')
|
|
|
|
->with($this->equalTo($links));
|
2015-10-27 02:59:05 +00:00
|
|
|
|
2021-12-10 11:57:08 +00:00
|
|
|
$alias = new RootAliasPackage($root, '1.0', '1.0.0.0');
|
2015-10-27 02:59:05 +00:00
|
|
|
$this->assertEmpty($alias->getConflicts());
|
|
|
|
$alias->setConflicts($links);
|
|
|
|
$this->assertNotEmpty($alias->getConflicts());
|
|
|
|
}
|
|
|
|
|
2022-02-18 09:38:54 +00:00
|
|
|
public function testUpdateProvides(): void
|
2015-10-27 02:59:05 +00:00
|
|
|
{
|
2021-12-10 11:57:08 +00:00
|
|
|
$links = array(new Link('a', 'b', new MatchAllConstraint(), Link::TYPE_PROVIDE, 'self.version'));
|
2015-10-27 02:59:05 +00:00
|
|
|
|
2021-12-10 11:57:08 +00:00
|
|
|
$root = $this->getMockRootPackage();
|
|
|
|
$root->expects($this->once())
|
|
|
|
->method('setProvides')
|
|
|
|
->with($this->equalTo($links));
|
|
|
|
|
|
|
|
$alias = new RootAliasPackage($root, '1.0', '1.0.0.0');
|
2015-10-27 02:59:05 +00:00
|
|
|
$this->assertEmpty($alias->getProvides());
|
|
|
|
$alias->setProvides($links);
|
|
|
|
$this->assertNotEmpty($alias->getProvides());
|
|
|
|
}
|
|
|
|
|
2022-02-18 09:38:54 +00:00
|
|
|
public function testUpdateReplaces(): void
|
2015-10-27 02:59:05 +00:00
|
|
|
{
|
2021-12-10 11:57:08 +00:00
|
|
|
$links = array(new Link('a', 'b', new MatchAllConstraint(), Link::TYPE_REPLACE, 'self.version'));
|
|
|
|
|
|
|
|
$root = $this->getMockRootPackage();
|
|
|
|
$root->expects($this->once())
|
|
|
|
->method('setReplaces')
|
|
|
|
->with($this->equalTo($links));
|
2015-10-27 02:59:05 +00:00
|
|
|
|
2021-12-10 11:57:08 +00:00
|
|
|
$alias = new RootAliasPackage($root, '1.0', '1.0.0.0');
|
2015-10-27 02:59:05 +00:00
|
|
|
$this->assertEmpty($alias->getReplaces());
|
|
|
|
$alias->setReplaces($links);
|
|
|
|
$this->assertNotEmpty($alias->getReplaces());
|
|
|
|
}
|
|
|
|
|
2021-11-01 20:44:12 +00:00
|
|
|
/**
|
2021-12-10 11:57:08 +00:00
|
|
|
* @return RootPackage&MockObject
|
2021-11-01 20:44:12 +00:00
|
|
|
*/
|
2021-12-10 11:57:08 +00:00
|
|
|
protected function getMockRootPackage()
|
2015-10-27 02:59:05 +00:00
|
|
|
{
|
2021-12-10 11:57:08 +00:00
|
|
|
$root = $this->getMockBuilder(RootPackage::class)->disableOriginalConstructor()->getMock();
|
|
|
|
$root->expects($this->atLeastOnce())
|
|
|
|
->method('getName')
|
|
|
|
->willReturn('something/something');
|
|
|
|
$root->expects($this->atLeastOnce())
|
|
|
|
->method('getRequires')
|
|
|
|
->willReturn(array());
|
|
|
|
$root->expects($this->atLeastOnce())
|
|
|
|
->method('getDevRequires')
|
|
|
|
->willReturn(array());
|
|
|
|
$root->expects($this->atLeastOnce())
|
|
|
|
->method('getConflicts')
|
|
|
|
->willReturn(array());
|
|
|
|
$root->expects($this->atLeastOnce())
|
|
|
|
->method('getProvides')
|
|
|
|
->willReturn(array());
|
|
|
|
$root->expects($this->atLeastOnce())
|
|
|
|
->method('getReplaces')
|
|
|
|
->willReturn(array());
|
2015-11-21 19:28:10 +00:00
|
|
|
|
2015-10-27 02:59:05 +00:00
|
|
|
return $root;
|
|
|
|
}
|
|
|
|
}
|