Best Mockery code snippet using name.mock
LayoutTest.php
Source:LayoutTest.php
1<?php2/**3 * Copyright © 2016 Magento. All rights reserved.4 * See COPYING.txt for license details.5 */6namespace Magento\Framework\View\Test\Unit;7/**8 * @SuppressWarnings(PHPMD.TooManyFields)9 * @SuppressWarnings(PHPMD.CouplingBetweenObjects)10 */11class LayoutTest extends \PHPUnit_Framework_TestCase12{13 /**14 * @var \Magento\Framework\View\Layout15 */16 protected $model;17 /**18 * @var \PHPUnit_Framework_MockObject_MockObject19 */20 protected $structureMock;21 /**22 * @var \Magento\Framework\View\Layout\ProcessorFactory|\PHPUnit_Framework_MockObject_MockObject23 */24 protected $processorFactoryMock;25 /**26 * @var \Magento\Framework\View\Design\Theme\ResolverInterface|\PHPUnit_Framework_MockObject_MockObject27 */28 protected $themeResolverMock;29 /**30 * @var \Magento\Framework\View\Model\Layout\Merge|\PHPUnit_Framework_MockObject_MockObject31 */32 protected $processorMock;33 /**34 * @var \Magento\Framework\Event\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject35 */36 protected $eventManagerMock;37 /**38 * @var \Magento\Framework\View\Layout\Generator\Block|\PHPUnit_Framework_MockObject_MockObject39 */40 protected $generatorBlockMock;41 /**42 * @var \Magento\Framework\View\Layout\Generator\Container|\PHPUnit_Framework_MockObject_MockObject43 */44 protected $generatorContainerMock;45 /**46 * @var \Magento\Framework\Cache\FrontendInterface|\PHPUnit_Framework_MockObject_MockObject47 */48 protected $cacheMock;49 /**50 * @var \Magento\Framework\View\Layout\ReaderPool|\PHPUnit_Framework_MockObject_MockObject51 */52 protected $readerPoolMock;53 /**54 * @var \Magento\Framework\View\Layout\GeneratorPool|\PHPUnit_Framework_MockObject_MockObject55 */56 protected $generatorPoolMock;57 /**58 * @var \Magento\Framework\Message\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject59 */60 protected $messageManagerMock;61 /**62 * @var \Magento\Framework\View\Layout\Reader\ContextFactory|\PHPUnit_Framework_MockObject_MockObject63 */64 protected $readerContextFactoryMock;65 /**66 * @var \Magento\Framework\View\Layout\Reader\Context|\PHPUnit_Framework_MockObject_MockObject67 */68 protected $readerContextMock;69 /**70 * @var \Magento\Framework\View\Layout\Generator\ContextFactory|\PHPUnit_Framework_MockObject_MockObject71 */72 protected $generatorContextFactoryMock;73 /**74 * @var \Magento\Framework\App\State|\PHPUnit_Framework_MockObject_MockObject75 */76 protected $appStateMock;77 /**78 * @var \Psr\Log\LoggerInterface|\PHPUnit_Framework_MockObject_MockObject79 */80 protected $loggerMock;81 protected function setUp()82 {83 $this->structureMock = $this->getMockBuilder('Magento\Framework\View\Layout\Data\Structure')84 ->disableOriginalConstructor()85 ->getMock();86 $this->processorFactoryMock = $this->getMock(87 'Magento\Framework\View\Layout\ProcessorFactory',88 ['create'],89 [],90 '',91 false92 );93 $this->themeResolverMock = $this->getMockForAbstractClass(94 'Magento\Framework\View\Design\Theme\ResolverInterface'95 );96 $this->processorMock = $this->getMock('Magento\Framework\View\Model\Layout\Merge', [], [], '', false);97 $this->eventManagerMock = $this->getMock('Magento\Framework\Event\ManagerInterface');98 $this->generatorBlockMock = $this->getMockBuilder('Magento\Framework\View\Layout\Generator\Block')99 ->disableOriginalConstructor()->getMock();100 $this->generatorContainerMock = $this->getMockBuilder('Magento\Framework\View\Layout\Generator\Container')101 ->disableOriginalConstructor()->getMock();102 $this->cacheMock = $this->getMockBuilder('Magento\Framework\Cache\FrontendInterface')103 ->disableOriginalConstructor()104 ->getMock();105 $this->readerPoolMock = $this->getMockBuilder('Magento\Framework\View\Layout\ReaderPool')106 ->disableOriginalConstructor()107 ->getMock();108 $this->messageManagerMock = $this->getMockBuilder('Magento\Framework\Message\ManagerInterface')109 ->disableOriginalConstructor()110 ->getMock();111 $this->generatorPoolMock = $this->getMockBuilder('Magento\Framework\View\Layout\GeneratorPool')112 ->disableOriginalConstructor()->getMock();113 $this->generatorPoolMock->expects($this->any())114 ->method('getGenerator')115 ->will(116 $this->returnValueMap([117 [\Magento\Framework\View\Layout\Generator\Block::TYPE, $this->generatorBlockMock],118 [\Magento\Framework\View\Layout\Generator\Container::TYPE, $this->generatorContainerMock],119 ])120 );121 $this->readerContextFactoryMock = $this->getMockBuilder('Magento\Framework\View\Layout\Reader\ContextFactory')122 ->disableOriginalConstructor()123 ->getMock();124 $this->readerContextMock = $this->getMockBuilder('Magento\Framework\View\Layout\Reader\Context')125 ->disableOriginalConstructor()126 ->getMock();127 $this->generatorContextFactoryMock = $this->getMockBuilder(128 'Magento\Framework\View\Layout\Generator\ContextFactory'129 )130 ->disableOriginalConstructor()131 ->getMock();132 $this->appStateMock = $this->getMockBuilder('Magento\Framework\App\State')133 ->disableOriginalConstructor()134 ->getMock();135 $this->loggerMock = $this->getMockBuilder('Psr\Log\LoggerInterface')136 ->getMock();137 $this->model = new \Magento\Framework\View\Layout(138 $this->processorFactoryMock,139 $this->eventManagerMock,140 $this->structureMock,141 $this->messageManagerMock,142 $this->themeResolverMock,143 $this->readerPoolMock,144 $this->generatorPoolMock,145 $this->cacheMock,146 $this->readerContextFactoryMock,147 $this->generatorContextFactoryMock,148 $this->appStateMock,149 $this->loggerMock,150 true151 );152 }153 public function testCreateBlockSuccess()154 {155 $blockMock = $this->getMockBuilder('Magento\Framework\View\Element\AbstractBlock')156 ->disableOriginalConstructor()157 ->getMockForAbstractClass();158 $this->structureMock->expects($this->once())159 ->method('createStructuralElement')160 ->with(161 'blockname',162 \Magento\Framework\View\Layout\Element::TYPE_BLOCK,163 'Magento\Framework\View\Element\AbstractBlock'164 )->willReturn('blockname');165 $this->generatorBlockMock->expects($this->once())->method('createBlock')->will($this->returnValue($blockMock));166 $this->model->createBlock('Magento\Framework\View\Element\AbstractBlock', 'blockname', []);167 $this->assertInstanceOf('Magento\Framework\View\Element\AbstractBlock', $this->model->getBlock('blockname'));168 $this->assertFalse($this->model->getBlock('not_exist'));169 }170 public function testGetUpdate()171 {172 $themeMock = $this->getMockForAbstractClass('Magento\Framework\View\Design\ThemeInterface');173 $this->themeResolverMock->expects($this->once())174 ->method('get')175 ->will($this->returnValue($themeMock));176 $this->processorFactoryMock->expects($this->once())177 ->method('create')178 ->with(['theme' => $themeMock])179 ->will($this->returnValue($this->processorMock));180 $this->assertEquals($this->processorMock, $this->model->getUpdate());181 $this->assertEquals($this->processorMock, $this->model->getUpdate());182 }183 public function testGenerateXml()184 {185 $themeMock = $this->getMockForAbstractClass('Magento\Framework\View\Design\ThemeInterface');186 $this->themeResolverMock->expects($this->once())187 ->method('get')188 ->will($this->returnValue($themeMock));189 $this->processorFactoryMock->expects($this->once())190 ->method('create')191 ->with(['theme' => $themeMock])192 ->will($this->returnValue($this->processorMock));193 $xmlString = '<?xml version="1.0"?><layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'194 . '<some_update>123</some_update></layout>';195 $xml = simplexml_load_string($xmlString, 'Magento\Framework\View\Layout\Element');196 $this->processorMock->expects($this->once())197 ->method('asSimplexml')198 ->will($this->returnValue($xml));199 $this->structureMock->expects($this->once())200 ->method('importElements')201 ->with($this->equalTo([]))202 ->will($this->returnSelf());203 $this->assertSame($this->model, $this->model->generateXml());204 $this->assertSame('<some_update>123</some_update>', $this->model->getNode('some_update')->asXml());205 }206 public function testGetChildBlock()207 {208 $customBlockName = 'custom_block';209 $customBlockParentName = 'custom_block_parent';210 $customBlockAlias = 'custom_block_alias';211 $blockMock = $this->getMockBuilder('Magento\Framework\View\Element\Template')212 ->disableOriginalConstructor()213 ->getMock();214 $this->structureMock->expects($this->once())215 ->method('getChildId')216 ->with($customBlockParentName, $customBlockAlias)217 ->willReturn($customBlockName);218 $this->structureMock->expects($this->once())219 ->method('hasElement')220 ->with($customBlockName)221 ->willReturn(true);222 $this->structureMock->expects($this->once())223 ->method('getAttribute')224 ->with($customBlockName, 'type')225 ->willReturn(\Magento\Framework\View\Layout\Element::TYPE_BLOCK);226 $this->model->setBlock($customBlockName, $blockMock);227 $this->assertInstanceOf(228 'Magento\Framework\View\Element\AbstractBlock',229 $this->model->getChildBlock($customBlockParentName, $customBlockAlias)230 );231 }232 public function testGetChildNonExistBlock()233 {234 $this->structureMock->expects($this->once())235 ->method('getChildId')236 ->with('non_exist_parent', 'non_exist_alias')237 ->willReturn(false);238 $this->assertFalse($this->model->getChildBlock('non_exist_parent', 'non_exist_alias'));239 }240 public function testSetChild()241 {242 $elementName = 'child';243 $parentName = 'parent';244 $alias = 'some_alias';245 $this->structureMock->expects($this->once())246 ->method('setAsChild')247 ->with($this->equalTo($elementName), $this->equalTo($parentName), $this->equalTo($alias))248 ->will($this->returnSelf());249 $this->assertSame($this->model, $this->model->setChild($parentName, $elementName, $alias));250 }251 public function testUnsetChild()252 {253 $parentName = 'parent';254 $alias = 'some_alias';255 $this->structureMock->expects($this->once())256 ->method('unsetChild')257 ->with($this->equalTo($parentName), $this->equalTo($alias))258 ->will($this->returnSelf());259 $this->assertSame($this->model, $this->model->unsetChild($parentName, $alias));260 }261 public function testGetChildNames()262 {263 $parentName = 'parent';264 $childrenArray = ['key1' => 'value1', 'key2' => 'value2'];265 $this->structureMock->expects($this->once())266 ->method('getChildren')267 ->with($this->equalTo($parentName))268 ->will($this->returnValue($childrenArray));269 $this->assertSame(['key1', 'key2'], $this->model->getChildNames($parentName));270 }271 public function testGetChildBlocks()272 {273 $parentName = 'parent';274 $childrenArray = ['block_name' => 'value1'];275 $this->structureMock->expects($this->once())276 ->method('getChildren')277 ->with($this->equalTo($parentName))278 ->will($this->returnValue($childrenArray));279 $blockMock = $this->getMockBuilder('Magento\Framework\View\Element\AbstractBlock')280 ->disableOriginalConstructor()281 ->getMockForAbstractClass();282 $this->structureMock->expects($this->once())283 ->method('createStructuralElement')284 ->with(285 'block_name',286 \Magento\Framework\View\Layout\Element::TYPE_BLOCK,287 'Magento\Framework\View\Element\AbstractBlock'288 )->willReturn('block_name');289 $this->generatorBlockMock->expects($this->once())->method('createBlock')->will($this->returnValue($blockMock));290 $this->assertSame(291 $blockMock,292 $this->model->createBlock('Magento\Framework\View\Element\AbstractBlock', 'block_name', [])293 );294 $this->assertSame(['value1' => $blockMock], $this->model->getChildBlocks($parentName));295 }296 public function testGetChildName()297 {298 $parentName = 'parent';299 $alias = 'some_alias';300 $this->structureMock->expects($this->once())301 ->method('getChildId')302 ->with($this->equalTo($parentName), $this->equalTo($alias))303 ->will($this->returnValue('1'));304 $this->assertSame('1', $this->model->getChildName($parentName, $alias));305 }306 public function testAddToParentGroup()307 {308 $blockName = 'block_name';309 $parentGroup = 'parent_group';310 $this->structureMock->expects($this->once())311 ->method('addToParentGroup')312 ->with($this->equalTo($blockName), $this->equalTo($parentGroup))313 ->will($this->returnSelf());314 $this->assertSame($this->structureMock, $this->model->addToParentGroup($blockName, $parentGroup));315 }316 public function testGetGroupChildNames()317 {318 $blockName = 'block_name';319 $groupName = 'group_name';320 $this->structureMock->expects($this->once())321 ->method('getGroupChildNames')322 ->with($this->equalTo($blockName), $this->equalTo($groupName))323 ->will($this->returnSelf());324 $this->assertSame($this->structureMock, $this->model->getGroupChildNames($blockName, $groupName));325 }326 public function testHasElement()327 {328 $elementName = 'name';329 $this->structureMock->expects($this->once())330 ->method('hasElement')331 ->with($this->equalTo($elementName))332 ->will($this->returnValue(true));333 $this->assertTrue($this->model->hasElement($elementName));334 }335 public function testGetElementProperty()336 {337 $elementName = 'name';338 $elementAttr = 'attribute';339 $result = 'result';340 $this->structureMock->expects($this->once())341 ->method('getAttribute')342 ->with($this->equalTo($elementName), $this->equalTo($elementAttr))343 ->will($this->returnValue($result));344 $this->assertSame($result, $this->model->getElementProperty($elementName, $elementAttr));345 }346 /**347 * @param bool $hasElement348 * @param string $attribute349 * @param bool $result350 * @dataProvider isContainerDataProvider351 */352 public function testIsContainer($hasElement, $attribute, $result)353 {354 $elementName = 'element_name';355 $this->structureMock->expects($this->once())356 ->method('hasElement')357 ->with($this->equalTo($elementName))358 ->will($this->returnValue($hasElement));359 if ($hasElement) {360 $this->structureMock->expects($this->once())361 ->method('getAttribute')362 ->with($this->equalTo($elementName), $this->equalTo('type'))363 ->will($this->returnValue($attribute));364 }365 $this->assertSame($result, $this->model->isContainer($elementName));366 }367 /**368 * @return array369 */370 public function isContainerDataProvider()371 {372 return [373 [false, '', false],374 [true, 'container', true],375 [true, 'block', false],376 [true, 'something', false],377 ];378 }379 /**380 * @param bool $parentName381 * @param array $containerConfig382 * @param bool $result383 * @dataProvider isManipulationAllowedDataProvider384 */385 public function testIsManipulationAllowed($parentName, $containerConfig, $result)386 {387 $elementName = 'element_name';388 $this->structureMock->expects($this->once())389 ->method('getParentId')390 ->with($this->equalTo($elementName))391 ->will($this->returnValue($parentName));392 if ($parentName) {393 $this->structureMock->expects($this->once())394 ->method('hasElement')395 ->with($this->equalTo($parentName))396 ->will($this->returnValue($containerConfig['has_element']));397 if ($containerConfig['has_element']) {398 $this->structureMock->expects($this->once())399 ->method('getAttribute')400 ->with($this->equalTo($parentName), $this->equalTo('type'))401 ->will($this->returnValue($containerConfig['attribute']));402 }403 }404 $this->assertSame($result, $this->model->isManipulationAllowed($elementName));405 }406 /**407 * @return array408 */409 public function isManipulationAllowedDataProvider()410 {411 return [412 ['parent', ['has_element' => true, 'attribute' => 'container'], true],413 ['parent', ['has_element' => true, 'attribute' => 'block'], false],414 [false, [], false],415 ];416 }417 /**418 * @covers \Magento\Framework\View\Layout::setBlock419 * @covers \Magento\Framework\View\Layout::getAllBlocks420 * @covers \Magento\Framework\View\Layout::unsetElement421 */422 public function testSetGetBlock()423 {424 $blockName = 'some_name';425 $blockMock = $this->getMockBuilder('Magento\Framework\View\Element\AbstractBlock')426 ->disableOriginalConstructor()427 ->getMockForAbstractClass();428 $this->assertSame($this->model, $this->model->setBlock($blockName, $blockMock));429 $this->assertSame([$blockName => $blockMock], $this->model->getAllBlocks());430 $this->structureMock->expects($this->once())431 ->method('unsetElement')432 ->with($this->equalTo($blockName))433 ->will($this->returnSelf());434 $this->assertSame($this->model, $this->model->unsetElement($blockName));435 $this->assertSame([], $this->model->getAllBlocks());436 }437 public function testRenameElement()438 {439 $oldName = 'old_name';440 $newName = 'new_name';441 $blockMock = $this->getMockBuilder('Magento\Framework\View\Element\AbstractBlock')442 ->disableOriginalConstructor()443 ->getMockForAbstractClass();444 $this->structureMock->expects($this->once())445 ->method('renameElement')446 ->with($this->equalTo($oldName), $this->equalTo($newName))447 ->will($this->returnSelf());448 $this->assertSame($this->model, $this->model->setBlock($oldName, $blockMock));449 $this->assertSame($this->model, $this->model->renameElement($oldName, $newName));450 $this->assertSame([$newName => $blockMock], $this->model->getAllBlocks());451 }452 public function testGetParentName()453 {454 $childName = 'child_name';455 $parentId = 'parent_id';456 $this->structureMock->expects($this->once())457 ->method('getParentId')458 ->with($this->equalTo($childName))459 ->will($this->returnValue($parentId));460 $this->assertSame($parentId, $this->model->getParentName($childName));461 }462 public function testGetElementAlias()463 {464 $name = 'child_name';465 $parentId = 'parent_id';466 $alias = 'alias';467 $this->structureMock->expects($this->once())468 ->method('getParentId')469 ->with($this->equalTo($name))470 ->will($this->returnValue($parentId));471 $this->structureMock->expects($this->once())472 ->method('getChildAlias')473 ->with($this->equalTo($parentId), $this->equalTo($name))474 ->will($this->returnValue($alias));475 $this->assertSame($alias, $this->model->getElementAlias($name));476 }477 public function testAddRemoveOutputElement()478 {479 $this->assertSame($this->model, $this->model->addOutputElement('name'));480 $this->assertSame($this->model, $this->model->removeOutputElement('name'));481 }482 public function testIsPrivate()483 {484 $this->assertFalse($this->model->isPrivate());485 $this->assertSame($this->model, $this->model->setIsPrivate(true));486 $this->assertTrue($this->model->isPrivate());487 }488 /**489 * @param array $type490 * @param array $blockInstance491 * @dataProvider getBlockSingletonDataProvider492 */493 public function testGetBlockSingleton($type, $blockInstance, $isAbstract)494 {495 $blockMock = $this->getMock($blockInstance, [], [], '', false);496 $this->generatorBlockMock->expects($this->once())->method('createBlock')->will($this->returnValue($blockMock));497 if ($isAbstract) {498 $blockMock->expects($this->any())499 ->method('setLayout')500 ->with($this->equalTo($this->model))501 ->will($this->returnSelf());502 }503 $this->assertInstanceOf($blockInstance, $this->model->getBlockSingleton($type));504 // singleton test505 $this->assertInstanceOf($blockInstance, $this->model->getBlockSingleton($type));506 }507 /**508 * @return array509 */510 public function getBlockSingletonDataProvider()511 {512 return [513 [514 'some_type',515 'Magento\Framework\View\Element\Template',516 true,517 ],518 ];519 }520 /**521 * @param array $rendererData522 * @param array $getData523 * @param bool $result524 * @dataProvider getRendererOptionsDataProvider525 */526 public function testAddGetRendererOptions($rendererData, $getData, $result)527 {528 $this->assertSame(529 $this->model,530 $this->model->addAdjustableRenderer(531 $rendererData['namespace'],532 $rendererData['static_type'],533 $rendererData['dynamic_type'],534 $rendererData['type'],535 $rendererData['template'],536 $rendererData['data']537 )538 );539 $this->assertSame(540 $result,541 $this->model->getRendererOptions($getData['namespace'], $getData['static_type'], $getData['dynamic_type'])542 );543 }544 /**545 * @return array546 */547 public function getRendererOptionsDataProvider()548 {549 $rendererData = [550 'namespace' => 'namespace_value',551 'static_type' => 'static_type_value',552 'dynamic_type' => 'dynamic_type_value',553 'type' => 'type_value',554 'template' => 'template.phtml',555 'data' => ['some' => 'data'],556 ];557 return [558 'wrong namespace' => [559 $rendererData,560 [561 'namespace' => 'wrong namespace',562 'static_type' => 'static_type_value',563 'dynamic_type' => 'dynamic_type_value',564 ],565 null,566 ],567 'wrong static type' => [568 $rendererData,569 [570 'namespace' => 'namespace_value',571 'static_type' => 'wrong static type',572 'dynamic_type' => 'dynamic_type_value',573 ],574 null,575 ],576 'wrong dynamic type' => [577 $rendererData,578 [579 'namespace' => 'namespace_value',580 'static_type' => 'static_type_value',581 'dynamic_type' => 'wrong dynamic type',582 ],583 null,584 ],585 'set and get test' => [586 $rendererData,587 [588 'namespace' => 'namespace_value',589 'static_type' => 'static_type_value',590 'dynamic_type' => 'dynamic_type_value',591 ],592 [593 'type' => 'type_value',594 'template' => 'template.phtml',595 'data' => ['some' => 'data'],596 ],597 ],598 ];599 }600 /**601 * @param string $xmlString602 * @param bool $result603 * @dataProvider isCacheableDataProvider604 */605 public function testIsCacheable($xmlString, $result)606 {607 $xml = simplexml_load_string($xmlString, 'Magento\Framework\View\Layout\Element');608 $this->assertSame($this->model, $this->model->setXml($xml));609 $this->assertSame($result, $this->model->isCacheable());610 }611 /**612 * @return array613 */614 public function isCacheableDataProvider()615 {616 return [617 [618 '<?xml version="1.0"?><layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'619 . '<block></block></layout>',620 true,621 ],622 [623 '<?xml version="1.0"?><layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'624 . '<block cacheable="false"></block></layout>',625 false626 ],627 ];628 }629 public function testGenerateElementsWithoutCache()630 {631 $this->readerContextFactoryMock->expects($this->once())632 ->method('create')633 ->willReturn($this->readerContextMock);634 $layoutCacheId = 'layout_cache_id';635 $handles = ['default', 'another'];636 /** @var \Magento\Framework\View\Layout\Element $xml */637 $xml = simplexml_load_string('<layout/>', 'Magento\Framework\View\Layout\Element');638 $this->model->setXml($xml);639 $themeMock = $this->getMockForAbstractClass('Magento\Framework\View\Design\ThemeInterface');640 $this->themeResolverMock->expects($this->once())641 ->method('get')642 ->willReturn($themeMock);643 $this->processorFactoryMock->expects($this->once())644 ->method('create')645 ->with(['theme' => $themeMock])646 ->willReturn($this->processorMock);647 $this->processorMock->expects($this->once())648 ->method('getCacheId')649 ->willReturn($layoutCacheId);650 $this->processorMock->expects($this->once())651 ->method('getHandles')652 ->willReturn($handles);653 $this->cacheMock->expects($this->once())654 ->method('load')655 ->with('structure_' . $layoutCacheId)656 ->willReturn(false);657 $this->readerPoolMock->expects($this->once())658 ->method('interpret')659 ->with($this->readerContextMock, $xml)660 ->willReturnSelf();661 $this->cacheMock->expects($this->once())662 ->method('save')663 ->with(serialize($this->readerContextMock), 'structure_' . $layoutCacheId, $handles)664 ->willReturn(true);665 $generatorContextMock = $this->getMockBuilder('Magento\Framework\View\Layout\Generator\Context')666 ->disableOriginalConstructor()667 ->getMock();668 $this->generatorContextFactoryMock->expects($this->once())669 ->method('create')670 ->with(['structure' => $this->structureMock, 'layout' => $this->model])671 ->willReturn($generatorContextMock);672 $this->generatorPoolMock->expects($this->once())673 ->method('process')674 ->with($this->readerContextMock, $generatorContextMock)675 ->willReturn(true);676 $elements = [677 'name_1' => ['type' => '', 'parent' => null],678 'name_2' => ['type' => \Magento\Framework\View\Layout\Element::TYPE_CONTAINER, 'parent' => null],679 'name_3' => ['type' => '', 'parent' => 'parent'],680 'name_4' => ['type' => \Magento\Framework\View\Layout\Element::TYPE_CONTAINER, 'parent' => 'parent'],681 ];682 $this->structureMock->expects($this->once())683 ->method('exportElements')684 ->willReturn($elements);685 $this->model->generateElements();686 }687 public function testGenerateElementsWithCache()688 {689 $layoutCacheId = 'layout_cache_id';690 /** @var \Magento\Framework\View\Layout\Element $xml */691 $xml = simplexml_load_string('<layout/>', 'Magento\Framework\View\Layout\Element');692 $this->model->setXml($xml);693 $themeMock = $this->getMockForAbstractClass('Magento\Framework\View\Design\ThemeInterface');694 $this->themeResolverMock->expects($this->once())695 ->method('get')696 ->willReturn($themeMock);697 $this->processorFactoryMock->expects($this->once())698 ->method('create')699 ->with(['theme' => $themeMock])700 ->willReturn($this->processorMock);701 $this->processorMock->expects($this->once())702 ->method('getCacheId')703 ->willReturn($layoutCacheId);704 $readerContextMock = $this->getMockBuilder('Magento\Framework\View\Layout\Reader\Context')705 ->disableOriginalConstructor()706 ->getMock();707 $this->cacheMock->expects($this->once())708 ->method('load')709 ->with('structure_' . $layoutCacheId)710 ->willReturn(serialize($readerContextMock));711 $this->readerPoolMock->expects($this->never())712 ->method('interpret');713 $this->cacheMock->expects($this->never())714 ->method('save');715 $generatorContextMock = $this->getMockBuilder('Magento\Framework\View\Layout\Generator\Context')716 ->disableOriginalConstructor()717 ->getMock();718 $this->generatorContextFactoryMock->expects($this->once())719 ->method('create')720 ->with(['structure' => $this->structureMock, 'layout' => $this->model])721 ->willReturn($generatorContextMock);722 $this->generatorPoolMock->expects($this->once())723 ->method('process')724 ->with($readerContextMock, $generatorContextMock)725 ->willReturn(true);726 $elements = [727 'name_1' => ['type' => '', 'parent' => null],728 'name_2' => ['type' => \Magento\Framework\View\Layout\Element::TYPE_CONTAINER, 'parent' => null],729 'name_3' => ['type' => '', 'parent' => 'parent'],730 'name_4' => ['type' => \Magento\Framework\View\Layout\Element::TYPE_CONTAINER, 'parent' => 'parent'],731 ];732 $this->structureMock->expects($this->once())733 ->method('exportElements')734 ->willReturn($elements);735 $this->model->generateElements();736 }737 public function testGetXml()738 {739 $xml = '<layout/>';740 $this->assertSame($xml, \Magento\Framework\View\Layout::LAYOUT_NODE);741 }742 /**743 * @param mixed $displayValue744 * @dataProvider renderElementDisplayDataProvider745 */746 public function testRenderElementDisplay($displayValue)747 {748 $name = 'test_container';749 $child = 'child_block';750 $children = [$child => true];751 $blockHtml = '<html/>';752 $this->structureMock->expects($this->atLeastOnce())753 ->method('getAttribute')754 ->willReturnMap(755 [756 [$name, 'display', $displayValue],757 [$child, 'display', $displayValue],758 [$child, 'type', \Magento\Framework\View\Layout\Element::TYPE_BLOCK]759 ]760 );761 $this->structureMock->expects($this->atLeastOnce())->method('hasElement')762 ->willReturnMap(763 [764 [$child, true]765 ]766 );767 $this->structureMock->expects($this->once())768 ->method('getChildren')769 ->with($name)770 ->willReturn($children);771 $block = $this->getMock('Magento\Framework\View\Element\AbstractBlock', [], [], '', false);772 $block->expects($this->once())->method('toHtml')->willReturn($blockHtml);773 $renderingOutput = new \Magento\Framework\DataObject();774 $renderingOutput->setData('output', $blockHtml);775 $this->eventManagerMock->expects($this->at(0))776 ->method('dispatch')777 ->with(778 'core_layout_render_element',779 ['element_name' => $child, 'layout' => $this->model, 'transport' => $renderingOutput]780 );781 $this->eventManagerMock->expects($this->at(1))782 ->method('dispatch')783 ->with(784 'core_layout_render_element',785 ['element_name' => $name, 'layout' => $this->model, 'transport' => $renderingOutput]786 );787 $this->model->setBlock($child, $block);788 $this->assertEquals($blockHtml, $this->model->renderElement($name, false));789 }790 /**791 * @param mixed $displayValue792 * @dataProvider renderElementDoNotDisplayDataProvider793 */794 public function testRenderElementDoNotDisplay($displayValue)795 {796 $displayValue = 'false';797 $name = 'test_container';798 $blockHtml = '';799 $this->structureMock->expects($this->atLeastOnce())800 ->method('getAttribute')801 ->willReturnMap([[$name, 'display', $displayValue]]);802 $this->assertEquals($blockHtml, $this->model->renderElement($name, false));803 }804 /**805 * @return array806 */807 public function renderElementDoNotDisplayDataProvider()808 {809 return [810 ['false'],811 ['0'],812 [0]813 ];814 }815 /**816 * @return array817 */818 public function renderElementDisplayDataProvider()819 {820 return [821 [true],822 ['1'],823 [1],824 ['true'],825 [false],826 [null]827 ];828 }829}...
SubscriptionTest.php
Source:SubscriptionTest.php
...8use \Magento\Framework\Mview\View\Subscription;9class SubscriptionTest extends \PHPUnit_Framework_TestCase10{11 /**12 * Mysql PDO DB adapter mock13 *14 * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\DB\Adapter\Pdo\Mysql15 */16 protected $connectionMock;17 /** @var \Magento\Framework\Mview\View\Subscription */18 protected $model;19 /** @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\App\ResourceConnection */20 protected $resourceMock;21 /** @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\DB\Ddl\TriggerFactory */22 protected $triggerFactoryMock;23 /** @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\Mview\View\CollectionInterface */24 protected $viewCollectionMock;25 /** @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\Mview\ViewInterface */26 protected $viewMock;...
mock
Using AI Code Generation
1$mock = $this->getMock('name', array('method1', 'method2'));2$mock->expects($this->any())3->method('method1')4->will($this->returnValue('value'));5$mock->expects($this->any())6->method('method2')7->will($this->returnValue('value'));8$mock = $this->getMock('name', array('method1', 'method2'));9$mock->expects($this->any())10->method('method1')11->will($this->returnValue('value'));12$mock->expects($this->any())13->method('method2')14->will($this->returnValue('value'));15$mock = $this->getMock('name', array('method1', 'method2'));16$mock->expects($this->any())17->method('method1')18->will($this->returnValue('value'));19$mock->expects($this->any())20->method('method2')21->will($this->returnValue('value'));22$mock = $this->getMock('name', array('method1', 'method2'));23$mock->expects($this->any())24->method('method1')25->will($this->returnValue('value'));26$mock->expects($this->any())27->method('method2')28->will($this->returnValue('value'));
mock
Using AI Code Generation
1$obj = new name();2$obj->method();3$obj = new name();4$obj->method();5$obj = new name();6$obj->method();7$obj = new name();8$obj->method();9Now, if you want to change the behavior of method() in 1.php, you can modify the mock method of name class. The same applies to 2.php
mock
Using AI Code Generation
1$mock = $this->getMockBuilder('class')2->setMethods(array('name'))3->getMock();4$mock->expects($this->any())5->method('name')6->will($this->returnValue('test'));7$this->assertEquals('test', $mock->name());8$mock = $this->getMockBuilder('class')9->setMethods(array('name'))10->getMock();11$mock->expects($this->any())12->method('name')13->will($this->returnValue('test'));14$this->assertEquals('test', $mock->name());15$mock = $this->getMockBuilder('class')16->setMethods(array('name'))17->getMock();18$mock->expects($this->any())19->method('name')20->will($this->returnValue('test'));21$this->assertEquals('test', $mock->name());22$mock = $this->getMockBuilder('class')23->setMethods(array('name'))24->getMock();25$mock->expects($this->any())26->method('name')27->will($this->returnValue('test'));28$this->assertEquals('test', $mock->name());29$mock = $this->getMockBuilder('class')30->setMethods(array('name'))31->getMock();32$mock->expects($this->any())33->method('name')34->will($this->returnValue('test'));35$this->assertEquals('test', $mock->name());36$mock = $this->getMockBuilder('class')37->setMethods(array('name'))38->getMock();39$mock->expects($this->any())40->method('name')41->will($this->returnValue('test'));42$this->assertEquals('test', $mock->name());43$mock = $this->getMockBuilder('class')44->setMethods(array('name'))45->getMock();46$mock->expects($this->any())47->method('name')48->will($this->returnValue('test'));49$this->assertEquals('test', $mock->name());
mock
Using AI Code Generation
1require_once 'name.php';2{3 public function testGetName()4 {5 $name = $this->getMock('name');6 $name->expects($this->any())7 ->method('getName')8 ->will($this->returnValue('John'));9 $this->assertEquals('John', $name->getName());10 }11}12{13 public function getName()14 {15 return 'John';16 }17}
mock
Using AI Code Generation
1$mock = $this->getMockBuilder('name')->getMock();2$mock->expects($this->once())->method('method')->will($this->returnValue('value'));3$mock = $this->getMockBuilder('name')->getMock();4$mock->expects($this->once())->method('method')->will($this->returnValue('value'));5$mock = $this->getMockBuilder('name')->getMock();6$mock->expects($this->once())->method('method')->will($this->returnValue('value'));7$mock = $this->getMockBuilder('name')->getMock();8$mock->expects($this->once())->method('method')->will($this->returnValue('value'));9$mock = $this->getMockBuilder('name')->getMock();10$mock->expects($this->once())->method('method')->will($this->returnValue('value'));11$mock = $this->getMockBuilder('name')->getMock();12$mock->expects($this->once())->method('method')->will($this->returnValue('value'));13$mock = $this->getMockBuilder('name')->getMock();14$mock->expects($this->once())->method('method')->will($this->returnValue('value'));15$mock = $this->getMockBuilder('name')->getMock();16$mock->expects($this->once())->method('method')->will($this->returnValue('value'));17$mock = $this->getMockBuilder('name')->getMock();18$mock->expects($this->once())->method('method')->will($this->returnValue('value'));19$mock = $this->getMockBuilder('name')->getMock();20$mock->expects($this->once())->method('method')->will($this->returnValue('value'));21$mock = $this->getMockBuilder('name')->getMock();22$mock->expects($this->once())->method('method')->will($this->returnValue('value'));
mock
Using AI Code Generation
1$mock = $this->getMockBuilder('name')->setMethods(array('method1'))->getMock();2$mock->expects($this->any())->method('method1')->will($this->returnValue('ok'));3$this->assertEquals('ok', $mock->method1());4$mock = $this->getMockBuilder('name')->setMethods(array('method2'))->getMock();5$mock->expects($this->any())->method('method2')->will($this->returnValue('ok'));6$this->assertEquals('ok', $mock->method2());7$mock = $this->getMockBuilder('name')->setMethods(array('method3'))->getMock();8$mock->expects($this->any())->method('method3')->will($this->returnValue('ok'));9$this->assertEquals('ok', $mock->method3());10$mock = $this->getMockBuilder('name')->setMethods(array('method4'))->getMock();11$mock->expects($this->any())->method('method4')->will($this->returnValue('ok'));12$this->assertEquals('ok', $mock->method4());13$mock = $this->getMockBuilder('name')->setMethods(array('method5'))->getMock();14$mock->expects($this->any())->method('method5')->will($this->returnValue('ok'));15$this->assertEquals('ok', $mock->method5());16$mock = $this->getMockBuilder('name')->setMethods(array('method6'))->getMock();17$mock->expects($this->any())->method('method6')->will($this->returnValue('ok'));18$this->assertEquals('ok', $mock->method6());19$mock = $this->getMockBuilder('name')->setMethods(array('method7'))->getMock();20$mock->expects($this->any())->method('method7')->will($this->returnValue('ok'));21$this->assertEquals('ok', $mock->method7());22$mock = $this->getMockBuilder('
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Execute automation tests with mock on a cloud-based Grid of 3000+ real browsers and operating systems for both web and mobile applications.
Test now for FreeGet 100 minutes of automation test minutes FREE!!