![]() 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-ui/Test/Unit/DataProvider/Modifier/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Ui\Test\Unit\DataProvider\Modifier; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; use Magento\Ui\DataProvider\Modifier\ModifierFactory; use Magento\Ui\DataProvider\Modifier\ModifierInterface; use Magento\Ui\DataProvider\Modifier\Pool; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; class PoolTest extends TestCase { /** * @var ObjectManager */ protected $objectManager; /** * @var ModifierFactory|MockObject */ protected $factoryMock; /** * @var ModifierInterface|MockObject */ protected $dataProviderMockOne; /** * @var ModifierInterface|MockObject */ protected $dataProviderMockTwo; protected function setUp(): void { $this->objectManager = new ObjectManager($this); $this->factoryMock = $this->getMockBuilder(ModifierFactory::class) ->disableOriginalConstructor() ->getMock(); $this->dataProviderMockOne = $this->getMockBuilder(ModifierInterface::class) ->setMethods(['getData', 'getMeta', 'setData', 'setMeta']) ->getMockForAbstractClass(); $this->dataProviderMockTwo = clone $this->dataProviderMockOne; $this->factoryMock->expects($this->any()) ->method('create') ->willReturnMap([ ['DataProviderMockOne', [], $this->dataProviderMockOne], ['DataProviderMockTwo', [], $this->dataProviderMockTwo], ]); } public function testWithOneDataProvider() { $expectedData = ['DataProviderMockOne' => $this->dataProviderMockOne]; /** @var Pool $model */ $model = $this->objectManager->getObject(Pool::class, [ 'factory' => $this->factoryMock, 'modifiers' => [ [ 'class' => 'DataProviderMockOne', 'sortOrder' => 10, ], ] ]); $this->assertSame($expectedData, $model->getModifiersInstances()); } public function testWithFewmodifiers() { $expectedData = [ 'DataProviderMockOne' => $this->dataProviderMockOne, 'DataProviderMockTwo' => $this->dataProviderMockTwo, ]; /** @var Pool $model */ $model = $this->objectManager->getObject(Pool::class, [ 'factory' => $this->factoryMock, 'modifiers' => [ [ 'class' => 'DataProviderMockOne', 'sortOrder' => 10, ], [ 'class' => 'DataProviderMockTwo', 'sortOrder' => 20, ], ] ]); $this->assertSame($expectedData, $model->getModifiersInstances()); } public function testWithSortOrderException() { $this->expectException('Magento\Framework\Exception\LocalizedException'); $this->expectExceptionMessage('The parameter "sortOrder" is missing. Set the "sortOrder" and try again.'); /** @var Pool $model */ $model = $this->objectManager->getObject(Pool::class, [ 'factory' => $this->factoryMock, 'modifiers' => [ [ 'class' => 'DataProviderMockOne', ], ] ]); $model->getModifiersInstances(); } public function testWithClassException() { $this->expectException('Magento\Framework\Exception\LocalizedException'); $this->expectExceptionMessage('The parameter "class" is missing. Set the "class" and try again.'); /** @var Pool $model */ $model = $this->objectManager->getObject(Pool::class, [ 'factory' => $this->factoryMock, 'modifiers' => [ [ 'sortOrder' => 10, ], ] ]); $model->getModifiersInstances(); } /** * @param array $modifiers * @param array $expectedResult * @dataProvider getModifiersDataProvider */ public function testGetModifiers($modifiers, $expectedResult) { /** @var Pool $model */ $model = $this->objectManager->getObject(Pool::class, [ 'factory' => $this->factoryMock, 'modifiers' => $modifiers ]); $this->assertSame($model->getModifiers(), $expectedResult); } /** * @return array */ public function getModifiersDataProvider() { return [ [ [ ['class' => 'DataProviderMockTwo', 'sortOrder' => 20], ['class' => 'DataProviderMockOne', 'sortOrder' => 10] ], [ ['class' => 'DataProviderMockOne', 'sortOrder' => 10], ['class' => 'DataProviderMockTwo', 'sortOrder' => 20] ], ], [ [ ['class' => 'DataProviderMockOne', 'sortOrder' => 20], ['class' => 'DataProviderMockFour', 'sortOrder' => 140], ['class' => 'DataProviderMockTwo', 'sortOrder' => 31], ['class' => 'DataProviderMockThree', 'sortOrder' => 77], ], [ ['class' => 'DataProviderMockOne', 'sortOrder' => 20], ['class' => 'DataProviderMockTwo', 'sortOrder' => 31], ['class' => 'DataProviderMockThree', 'sortOrder' => 77], ['class' => 'DataProviderMockFour', 'sortOrder' => 140], ], ], ]; } }