Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
All Data Structures Namespaces Files Functions Variables Pages
UiComponentFactoryTest.php
Go to the documentation of this file.
1 <?php
7 
9 
10 class UiComponentFactoryTest extends \PHPUnit\Framework\TestCase
11 {
13  protected $model;
14 
17 
19  protected $objectManagerMock;
20 
22  protected $interpreterMock;
23 
26 
29 
32 
35 
37  protected $dataMock;
38 
39  protected function setUp()
40  {
41  $this->objectManagerMock = $this->getMockBuilder(\Magento\Framework\ObjectManagerInterface::class)
42  ->getMockForAbstractClass();
43  $this->interpreterMock = $this->getMockBuilder(\Magento\Framework\Data\Argument\InterpreterInterface::class)
44  ->getMockForAbstractClass();
45  $this->contextFactoryMock = $this
46  ->getMockBuilder(\Magento\Framework\View\Element\UiComponent\ContextFactory::class)
47  ->setMethods(['create'])
48  ->disableOriginalConstructor()
49  ->getMock();
50  $this->dataInterfaceFactoryMock = $this->getMockBuilder(\Magento\Framework\Config\DataInterfaceFactory::class)
51  ->setMethods(['create'])
52  ->disableOriginalConstructor()
53  ->getMock();
54  $this->safeReflectionClassMock = $this->getMockBuilder(\SafeReflectionClass::class)
55  ->disableOriginalConstructor()
56  ->getMock();
57  $this->safeReflectionClassMock2 = $this->getMockBuilder(\SafeReflectionClass::class)
58  ->disableOriginalConstructor()
59  ->getMock();
60  $this->dataMock = $this->createMock(\Magento\Framework\Config\DataInterface::class);
61  $this->objectManagerHelper = new ObjectManagerHelper($this);
62  $this->model = $this->objectManagerHelper->getObject(
63  \Magento\Framework\View\Element\UiComponentFactory::class,
64  [
65  'objectManager' => $this->objectManagerMock,
66  'argumentInterpreter' => $this->interpreterMock,
67  'contextFactory' => $this->contextFactoryMock,
68  'configFactory' => $this->dataInterfaceFactoryMock,
69  'data' => [],
70  'componentChildFactories' => [],
71  'definitionData' => $this->dataMock
72  ]
73  );
74  }
75 
76  public function testCreateRootComponent()
77  {
78  $identifier = "product_listing";
79  $context = $this->createMock(\Magento\Framework\View\Element\UiComponent\ContextInterface::class);
80  $bundleComponents = [
81  'attributes' => [
82  'class' => 'Some\Class\Component',
83  ],
84  'arguments' => [
85  'config' => [
86  'class' => 'Some\Class\Component2'
87  ]
88  ],
89  'children' => []
90  ];
91  $uiConfigMock = $this->createMock(\Magento\Framework\Config\DataInterface::class);
92  $this->dataInterfaceFactoryMock->expects($this->once())
93  ->method('create')
94  ->willReturn($uiConfigMock);
95  $uiConfigMock->expects($this->once())
96  ->method('get')
97  ->willReturn($bundleComponents);
98 
99  $this->contextFactoryMock->expects($this->once())
100  ->method('create')
101  ->willReturn($context);
102  $expectedArguments = [
103  'config' => [
104  'class' => 'Some\Class\Component2'
105  ],
106  'data' => [
107  'name' => $identifier
108  ],
109  'context' => $context,
110  'components' => []
111  ];
112  $this->objectManagerMock->expects($this->once())
113  ->method('create')
114  ->with('Some\Class\Component2', $expectedArguments);
115  $this->model->create($identifier);
116  }
117 
118  public function testNonRootComponent()
119  {
120  $identifier = "custom_select";
121  $name = "fieldset";
122  $context = $this->createMock(\Magento\Framework\View\Element\UiComponent\ContextInterface::class);
123  $arguments = ['context' => $context];
124  $defintionArguments = [
125  'componentType' => 'select',
126  'attributes' => [
127  'class' => '\Some\Class',
128  ],
129  'arguments' => []
130  ];
131  $expectedArguments = [
132  'data' => [
133  'name' => $identifier
134  ],
135  'context' => $context,
136  'components' => []
137  ];
138  $this->dataMock->expects($this->once())
139  ->method('get')
140  ->with($name)
141  ->willReturn($defintionArguments);
142  $this->objectManagerMock->expects($this->once())
143  ->method('create')
144  ->with('\Some\Class', $expectedArguments);
145  $this->model->create($identifier, $name, $arguments);
146  }
147 }
$arguments
if(!isset($_GET['name'])) $name
Definition: log.php:14