![]() 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-deploy/Test/Unit/Model/DeploymentConfig/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Deploy\Test\Unit\Model\DeploymentConfig; use Magento\Deploy\Model\DeploymentConfig\DataCollector; use Magento\Deploy\Model\DeploymentConfig\Hash; use Magento\Deploy\Model\DeploymentConfig\Hash\Generator; use Magento\Framework\Flag; use Magento\Framework\Flag\FlagResource; use Magento\Framework\FlagFactory; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; class HashTest extends TestCase { /** * @var Generator|MockObject */ private $configHashGeneratorMock; /** * @var DataCollector|MockObject */ private $dataConfigCollectorMock; /** * @var FlagFactory|MockObject */ private $flagFactoryMock; /** * @var FlagResource|MockObject */ private $flagResourceMock; /** * @var Flag|MockObject */ private $flagMock; /** * @var Hash */ private $hash; /** * @return void */ protected function setUp(): void { $this->flagResourceMock = $this->getMockBuilder(FlagResource::class) ->disableOriginalConstructor() ->getMock(); $this->flagFactoryMock = $this->getMockBuilder(FlagFactory::class) ->disableOriginalConstructor() ->getMock(); $this->flagMock = $this->getMockBuilder(Flag::class) ->disableOriginalConstructor() ->getMock(); $this->configHashGeneratorMock = $this->getMockBuilder(Generator::class) ->disableOriginalConstructor() ->getMock(); $this->dataConfigCollectorMock = $this->getMockBuilder(DataCollector::class) ->disableOriginalConstructor() ->getMock(); $this->hash = new Hash( $this->configHashGeneratorMock, $this->dataConfigCollectorMock, $this->flagResourceMock, $this->flagFactoryMock ); } /** * @param string|array|null $dataFromStorage * @param array $expectedResult * @return void * @dataProvider getDataProvider */ public function testGet($dataFromStorage, $expectedResult) { $this->flagMock->expects($this->once()) ->method('getFlagData') ->willReturn($dataFromStorage); $this->flagFactoryMock->expects($this->once()) ->method('create') ->with(['data' => ['flag_code' => Hash::CONFIG_KEY]]) ->willReturn($this->flagMock); $this->flagResourceMock->expects($this->once()) ->method('load') ->with($this->flagMock, Hash::CONFIG_KEY, 'flag_code') ->willReturnSelf(); $this->assertSame($expectedResult, $this->hash->get()); } /** * @return array */ public function getDataProvider() { return [ [['section' => 'hash'], ['section' => 'hash']], ['hash', ['hash']], ['', []], [null, []], ]; } /** * @return void */ public function testRegenerate() { $section = 'section'; $config = 'some config'; $fullConfig = ['section' => $config]; $hash = 'some hash'; $hashes = [$section => $hash]; $this->generalRegenerateMocks($fullConfig, $config, $hash, $hashes); $this->flagResourceMock->expects($this->once()) ->method('save') ->with($this->flagMock) ->willReturnSelf(); $this->hash->regenerate(); } /** * @return void */ public function testRegenerateWithException() { $this->expectException('Magento\Framework\Exception\LocalizedException'); $this->expectExceptionMessage('The hash isn\'t saved.'); $section = 'section'; $config = 'some config'; $fullConfig = ['section' => $config]; $hash = 'some hash'; $hashes = [$section => $hash]; $this->generalRegenerateMocks($fullConfig, $config, $hash, $hashes, $section); $this->flagResourceMock->expects($this->once()) ->method('save') ->with($this->flagMock) ->willThrowException(new \Exception('Some error')); $this->hash->regenerate($section); } /** * @param array $fullConfig * @param string $config * @param string $hash * @param array $hashes * @param string|null $sectionName * @return void */ private function generalRegenerateMocks($fullConfig, $config, $hash, $hashes, $sectionName = null) { $this->dataConfigCollectorMock->expects($this->once()) ->method('getConfig') ->with($sectionName) ->willReturn($fullConfig); $this->configHashGeneratorMock->expects($this->once()) ->method('generate') ->with($config) ->willReturn($hash); $this->flagMock->expects($this->once()) ->method('setFlagData') ->willReturn($hashes); $this->flagFactoryMock->expects($this->exactly(2)) ->method('create') ->with(['data' => ['flag_code' => Hash::CONFIG_KEY]]) ->willReturn($this->flagMock); $this->flagResourceMock->expects($this->exactly(2)) ->method('load') ->with($this->flagMock, Hash::CONFIG_KEY, 'flag_code'); } }