123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\Composer\Test\Unit;
- use Magento\Framework\App\Filesystem\DirectoryList;
- use Magento\Framework\Composer\ComposerFactory;
- use Magento\Framework\Composer\ComposerJsonFinder;
- use Magento\Framework\Filesystem\Driver\File;
- use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
- class ComposerFactoryTest extends \PHPUnit\Framework\TestCase
- {
- /** @var string Test COMPOSER_HOME environment variable value */
- private $testComposerHome = __DIR__ . '/_files/composer_home';
- /** @var string Location of test fixtures */
- private $fixturesDir = __DIR__ . '/_files/';
- /** @var string Original value of COMPOSER_HOME environment variable */
- private $originalComposerHome;
- /** @var File */
- private $fileDriver;
- public function setUp()
- {
- $this->fileDriver = new File();
- $this->originalComposerHome = getenv('COMPOSER_HOME');
- putenv('COMPOSER_HOME');
- }
- public function tearDown()
- {
- if ($this->originalComposerHome) {
- putenv('COMPOSER_HOME=' . $this->originalComposerHome);
- }
- // Composer home directory is created one level up from where composer.json is.
- if (is_dir($this->testComposerHome)) {
- $this->fileDriver->deleteDirectory($this->testComposerHome);
- }
- }
- public function testCreate()
- {
- $objectManager = new ObjectManager($this);
- $dirListMock = $this->getMockBuilder(DirectoryList::class)->disableOriginalConstructor()->getMock();
- $composerJsonFinderMock = $this->getMockBuilder(ComposerJsonFinder::class)
- ->disableOriginalConstructor()
- ->getMock();
- $composerJsonPath = $this->fixturesDir . 'composer.json';
- $dirListMock->expects($this->once())
- ->method('getPath')
- ->willReturn($this->testComposerHome);
- $composerJsonFinderMock->expects($this->once())
- ->method('findComposerJson')
- ->willReturn($composerJsonPath);
- /** @var ComposerFactory $factory */
- $factory = $objectManager->getObject(
- ComposerFactory::class,
- [
- 'directoryList' => $dirListMock,
- 'composerJsonFinder' => $composerJsonFinderMock
- ]
- );
- $this->assertInstanceOf(\Composer\Composer::class, $factory->create());
- }
- }
|