![]() 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/module-analytics/Test/Unit/Model/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Analytics\Test\Unit\Model; use Magento\Analytics\Api\Data\LinkInterface; use Magento\Analytics\Api\Data\LinkInterfaceFactory; use Magento\Analytics\Model\FileInfo; use Magento\Analytics\Model\FileInfoManager; use Magento\Analytics\Model\LinkProvider; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper; use Magento\Framework\UrlInterface; use Magento\Store\Model\Store; use Magento\Store\Model\StoreManagerInterface; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; class LinkProviderTest extends TestCase { /** * @var ObjectManagerHelper */ private $objectManagerHelper; /** * @var LinkInterfaceFactory|MockObject */ private $linkInterfaceFactoryMock; /** * @var FileInfoManager|MockObject */ private $fileInfoManagerMock; /** * @var StoreManagerInterface|MockObject */ private $storeManagerInterfaceMock; /** * @var LinkInterface|MockObject */ private $linkInterfaceMock; /** * @var FileInfo|MockObject */ private $fileInfoMock; /** * @var Store|MockObject */ private $storeMock; /** * @var LinkProvider */ private $linkProvider; /** * @return void */ protected function setUp(): void { $this->linkInterfaceFactoryMock = $this->getMockBuilder(LinkInterfaceFactory::class) ->disableOriginalConstructor() ->setMethods(['create']) ->getMock(); $this->fileInfoManagerMock = $this->createMock(FileInfoManager::class); $this->storeManagerInterfaceMock = $this->getMockBuilder(StoreManagerInterface::class) ->getMockForAbstractClass(); $this->linkInterfaceMock = $this->getMockBuilder(LinkInterface::class) ->getMockForAbstractClass(); $this->fileInfoMock = $this->createMock(FileInfo::class); $this->storeMock = $this->createMock(Store::class); $this->objectManagerHelper = new ObjectManagerHelper($this); $this->linkProvider = $this->objectManagerHelper->getObject( LinkProvider::class, [ 'linkFactory' => $this->linkInterfaceFactoryMock, 'fileInfoManager' => $this->fileInfoManagerMock, 'storeManager' => $this->storeManagerInterfaceMock ] ); } public function testGet() { $baseUrl = 'http://magento.local/media/'; $fileInfoPath = 'analytics/data.tgz'; $fileInitializationVector = 'er312esq23eqq'; $this->fileInfoManagerMock->expects($this->once()) ->method('load') ->willReturn($this->fileInfoMock); $this->linkInterfaceFactoryMock->expects($this->once()) ->method('create') ->with( [ 'initializationVector' => base64_encode($fileInitializationVector), 'url' => $baseUrl . $fileInfoPath ] ) ->willReturn($this->linkInterfaceMock); $this->storeManagerInterfaceMock->expects($this->once()) ->method('getStore')->willReturn($this->storeMock); $this->storeMock->expects($this->once()) ->method('getBaseUrl') ->with( UrlInterface::URL_TYPE_MEDIA ) ->willReturn($baseUrl); $this->fileInfoMock->expects($this->atLeastOnce()) ->method('getPath') ->willReturn($fileInfoPath); $this->fileInfoMock->expects($this->atLeastOnce()) ->method('getInitializationVector') ->willReturn($fileInitializationVector); $this->assertEquals($this->linkInterfaceMock, $this->linkProvider->get()); } /** * @param string|null $fileInfoPath * @param string|null $fileInitializationVector * * @dataProvider fileNotReadyDataProvider */ public function testFileNotReady($fileInfoPath, $fileInitializationVector) { $this->expectException('Magento\Framework\Exception\NoSuchEntityException'); $this->expectExceptionMessage('File is not ready yet.'); $this->fileInfoManagerMock->expects($this->once()) ->method('load') ->willReturn($this->fileInfoMock); $this->fileInfoMock->expects($this->once()) ->method('getPath') ->willReturn($fileInfoPath); $this->fileInfoMock ->method('getInitializationVector') ->willReturn($fileInitializationVector); $this->linkProvider->get(); } /** * @return array */ public function fileNotReadyDataProvider() { return [ [null, 'initVector'], ['path', null], ['', 'initVector'], ['path', ''], ['', ''], [null, null] ]; } }