![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/framework/Component/Test/Unit/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Framework\Component\Test\Unit; use Magento\Framework\Component\ComponentFile; use Magento\Framework\Component\ComponentRegistrarInterface; use Magento\Framework\Component\DirSearch; use Magento\Framework\Filesystem\Directory\ReadFactory; use Magento\Framework\Filesystem\Directory\ReadInterface; use Magento\Framework\Filesystem\DriverPool; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; class DirSearchTest extends TestCase { /** * @var ReadInterface|MockObject */ private $dir; /** * @var ComponentRegistrarInterface|MockObject */ private $registrar; /** * @var ReadFactory|MockObject */ private $readFactory; /** * @var DirSearch */ private $object; protected function setUp(): void { $this->registrar = $this->getMockForAbstractClass( ComponentRegistrarInterface::class ); $this->readFactory = $this->createMock(ReadFactory::class); $this->dir = $this->getMockForAbstractClass(ReadInterface::class); $this->dir->expects($this->any()) ->method('getAbsolutePath') ->willReturnArgument(0); $this->object = new DirSearch($this->registrar, $this->readFactory); } public function testCollectFilesNothingFound() { $componentType = 'component_type'; $this->registrar->expects($this->exactly(2)) ->method('getPaths') ->with($componentType) ->willReturn([]); $this->readFactory->expects($this->never()) ->method('create'); $this->assertSame([], $this->object->collectFiles($componentType, '*/file.xml')); $this->assertSame([], $this->object->collectFilesWithContext($componentType, '*/file.xml')); } public function testCollectFiles() { $componentType = 'component_type'; $componentPaths = ['component1' => 'path1', 'component2' => 'path2']; $pattern = '*/file.xml'; $this->registrar->expects($this->once()) ->method('getPaths') ->with($componentType) ->willReturn($componentPaths); $this->readFactory->expects($this->exactly(2)) ->method('create') ->willReturnMap([ ['path1', DriverPool::FILE, $this->dir], ['path2', DriverPool::FILE, $this->dir], ]); $this->dir->method('search') ->with($pattern) ->willReturnOnConsecutiveCalls(['one/file.xml'], ['two/file.xml']); $expected = ['one/file.xml', 'two/file.xml']; $this->assertSame($expected, $this->object->collectFiles($componentType, $pattern)); } public function testCollectFilesWithContext() { $componentType = 'component_type'; $componentPaths = ['component1' => 'path1', 'component2' => 'path2']; $pattern = '*/file.xml'; $this->registrar->expects($this->once()) ->method('getPaths') ->with($componentType) ->willReturn($componentPaths); $this->readFactory->expects($this->exactly(2)) ->method('create') ->willReturnMap([ ['path1', DriverPool::FILE, $this->dir], ['path2', DriverPool::FILE, $this->dir], ]); $this->dir->method('search') ->with($pattern) ->willReturnOnConsecutiveCalls(['one/file.xml'], ['two/file.xml']); $actualFiles = $this->object->collectFilesWithContext($componentType, $pattern); $this->assertNotEmpty($actualFiles); /** @var ComponentFile $file */ foreach ($actualFiles as $file) { $this->assertInstanceOf(ComponentFile::class, $file); $this->assertSame($componentType, $file->getComponentType()); } $this->assertCount(2, $actualFiles); $this->assertSame('component1', $actualFiles[0]->getComponentName()); $this->assertSame('one/file.xml', $actualFiles[0]->getFullPath()); $this->assertSame('component2', $actualFiles[1]->getComponentName()); $this->assertSame('two/file.xml', $actualFiles[1]->getFullPath()); } }