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('
Check out the latest blogs from LambdaTest on this topic:
Having a good web design can empower business and make your brand stand out. According to a survey by Top Design Firms, 50% of users believe that website design is crucial to an organization’s overall brand. Therefore, businesses should prioritize website design to meet customer expectations and build their brand identity. Your website is the face of your business, so it’s important that it’s updated regularly as per the current web design trends.
One of the most important tasks of a software developer is not just writing code fast; it is the ability to find what causes errors and bugs whenever you encounter one and the ability to solve them quickly.
There is just one area where each member of the software testing community has a distinct point of view! Metrics! This contentious issue sparks intense disputes, and most conversations finish with no definitive conclusion. It covers a wide range of topics: How can testing efforts be measured? What is the most effective technique to assess effectiveness? Which of the many components should be quantified? How can we measure the quality of our testing performance, among other things?
Anyone who has worked in the software industry for a while can tell you stories about projects that were on the verge of failure. Many initiatives fail even before they reach clients, which is especially disheartening when the failure is fully avoidable.
In my last blog, I investigated both the stateless and the stateful class of model-based testing. Both have some advantages and disadvantages. You can use them for different types of systems, depending on whether a stateful solution is required or a stateless one is enough. However, a better solution is to use an aggregate technique that is appropriate for each system. Currently, the only aggregate solution is action-state testing, introduced in the book Paradigm Shift in Software Testing. This method is implemented in Harmony.
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!!