8 use PHPUnit_Framework_MockObject_MockObject as MockObject;
30 $this->contextMock = $this->createMock(\
Magento\Framework\View\Element\UiComponent\ContextInterface::class);
31 $this->contextMock->expects($this->never())->method(
'getProcessor');
32 $this->abstractComponent = $this->getMockBuilder(\
Magento\Ui\Component\AbstractComponent::class)
33 ->enableOriginalConstructor()
34 ->setMethods([
'getComponentName'])
35 ->setConstructorArgs([
'context' => $this->contextMock])
44 $this->assertSame($this->contextMock, $this->abstractComponent->getContext());
53 $this->abstractComponent->setData(
'name',
$name);
54 $this->assertEquals(
$name, $this->abstractComponent->getName());
61 protected function initTestRender($renderResult)
64 $this->abstractComponent->setData(
'template',
$template);
67 $renderEngineMock = $this->createMock(ContentTypeInterface::class);
68 $renderEngineMock->expects($this->once())
70 ->with($this->abstractComponent,
$template .
'.xhtml')
71 ->willReturn($renderResult);
73 $this->contextMock->expects($this->once())
74 ->method(
'getRenderEngine')
75 ->willReturn($renderEngineMock);
83 $renderResult =
'some html code';
84 $this->initTestRender($renderResult);
85 $this->assertEquals($renderResult, $this->abstractComponent->render());
93 $this->assertNull($this->abstractComponent->getComponent(
'nameComponent'));
101 $this->assertEquals([], $this->abstractComponent->getChildComponents());
107 public function testAddGetChildComponents()
110 $uiComponentMock = $this->createMock(\
Magento\Framework\View\Element\UiComponentInterface::class);
111 $name =
'componentName';
113 $this->abstractComponent->addComponent(
$name, $uiComponentMock);
114 $this->assertEquals($uiComponentMock, $this->abstractComponent->getComponent(
$name));
120 public function testGetChildComponents()
123 $uiComponentMock = $this->createMock(\
Magento\Framework\View\Element\UiComponentInterface::class);
124 $name =
'componentName';
125 $expectedResult = [
$name => $uiComponentMock];
127 $this->abstractComponent->addComponent(
$name, $uiComponentMock);
128 $this->assertEquals($expectedResult, $this->abstractComponent->getChildComponents());
136 $this->assertEquals(
null, $this->abstractComponent->renderChildComponent(
'someComponent'));
142 public function testRenderChildComponent()
144 $name =
'componentName';
145 $expectedResult =
'some html code';
147 $uiComponentMock = $this->createMock(\
Magento\Framework\View\Element\UiComponentInterface::class);
148 $uiComponentMock->expects($this->once())
150 ->willReturn($expectedResult);
152 $this->abstractComponent->addComponent(
$name, $uiComponentMock);
153 $this->assertEquals($expectedResult, $this->abstractComponent->renderChildComponent(
$name));
162 $this->abstractComponent->setData(
'template',
$template);
164 $this->assertEquals(
$template .
'.xhtml', $this->abstractComponent->getTemplate());
175 $this->abstractComponent->setData(
'config',
$config);
176 $this->assertSame($expectedResult, $this->abstractComponent->getConfiguration());
185 [
'config' =>
null,
'expectedResult' => []],
186 [
'config' => [],
'expectedResult' => []],
187 [
'config' => [
'visible' =>
true],
'expectedResult' => [
'visible' =>
true]],
197 public function testGetJsConfig(array $jsConfig, array $expectedResult)
199 $namespace =
'my_namespace';
201 $uiComponentMock = $this->getMockBuilder(\
Magento\Framework\View\Element\UiComponentInterface::class)
202 ->setMethods([
'getData'])
203 ->getMockForAbstractClass();
204 $uiComponentMock->expects($this->once())
207 ->willReturnOnConsecutiveCalls($jsConfig);
208 $uiComponentMock->expects($this->any())
209 ->method(
'getContext')
210 ->willReturn($this->contextMock);
211 $this->contextMock->expects($this->any())
212 ->method(
'getNamespace')
213 ->willReturn($namespace);
215 $this->assertEquals($expectedResult, $this->abstractComponent->getJsConfig($uiComponentMock));
226 'expectedResult' => [
'extends' =>
'my_namespace']
229 'jsConfig' => [
'name' =>
'test'],
230 'expectedResult' => [
'name' =>
'test',
'extends' =>
'my_namespace']
233 'jsConfig' => [
'name' =>
'test',
'extends' =>
'some_extends'],
234 'expectedResult' => [
'name' =>
'test',
'extends' =>
'some_extends']
getJsConfigDataProvider()
testGetChildComponentsEmptyArray()
testRenderChildComponentNotExists()
testGetConfiguration($config, array $expectedResult)
getConfigurationDataProvider()
testGetComponentNotExists()
if(!isset($_GET['name'])) $name