123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- 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;
- /**
- * Class PoolTest
- */
- class PoolTest extends \PHPUnit\Framework\TestCase
- {
- /**
- * @var ObjectManager
- */
- protected $objectManager;
- /**
- * @var ModifierFactory|\PHPUnit_Framework_MockObject_MockObject
- */
- protected $factoryMock;
- /**
- * @var ModifierInterface|\PHPUnit_Framework_MockObject_MockObject
- */
- protected $dataProviderMockOne;
- /**
- * @var ModifierInterface|\PHPUnit_Framework_MockObject_MockObject
- */
- protected $dataProviderMockTwo;
- protected function setUp()
- {
- $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());
- }
- /**
- * @expectedException \Magento\Framework\Exception\LocalizedException
- * @expectedExceptionMessage The parameter "sortOrder" is missing. Set the "sortOrder" and try again.
- */
- public function testWithSortOrderException()
- {
- /** @var Pool $model */
- $model = $this->objectManager->getObject(Pool::class, [
- 'factory' => $this->factoryMock,
- 'modifiers' => [
- [
- 'class' => 'DataProviderMockOne',
- ],
- ]
- ]);
- $model->getModifiersInstances();
- }
- /**
- * @expectedException \Magento\Framework\Exception\LocalizedException
- * @expectedExceptionMessage The parameter "class" is missing. Set the "class" and try again.
- */
- public function testWithClassException()
- {
- /** @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],
- ],
- ],
- ];
- }
- }
|