| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\LayeredNavigation\Test\Unit\Block;
- class NavigationTest extends \PHPUnit\Framework\TestCase
- {
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $catalogLayerMock;
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $filterListMock;
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $layoutMock;
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $visibilityFlagMock;
- /**
- * @var \Magento\LayeredNavigation\Block\Navigation
- */
- protected $model;
- protected function setUp()
- {
- $this->catalogLayerMock = $this->createMock(\Magento\Catalog\Model\Layer::class);
- $this->filterListMock = $this->createMock(\Magento\Catalog\Model\Layer\FilterList::class);
- $this->visibilityFlagMock = $this->createMock(\Magento\Catalog\Model\Layer\AvailabilityFlagInterface::class);
- /** @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Catalog\Model\Layer\Resolver $layerResolver */
- $layerResolver = $this->getMockBuilder(\Magento\Catalog\Model\Layer\Resolver::class)
- ->disableOriginalConstructor()
- ->setMethods(['get', 'create'])
- ->getMock();
- $layerResolver->expects($this->any())
- ->method($this->anything())
- ->will($this->returnValue($this->catalogLayerMock));
- $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
- $this->model = $objectManager->getObject(
- \Magento\LayeredNavigation\Block\Navigation::class,
- [
- 'layerResolver' => $layerResolver,
- 'filterList' => $this->filterListMock,
- 'visibilityFlag' => $this->visibilityFlagMock
- ]
- );
- $this->layoutMock = $this->createMock(\Magento\Framework\View\LayoutInterface::class);
- }
- public function testGetStateHtml()
- {
- $stateHtml = 'I feel good';
- $this->filterListMock->expects($this->any())->method('getFilters')->will($this->returnValue([]));
- $this->layoutMock->expects($this->at(0))->method('getChildName')
- ->with(null, 'state')
- ->will($this->returnValue('state block'));
- $this->layoutMock->expects($this->once())->method('renderElement')
- ->with('state block', true)
- ->will($this->returnValue($stateHtml));
- $this->model->setLayout($this->layoutMock);
- $this->assertEquals($stateHtml, $this->model->getStateHtml());
- }
- /**
- * @covers \Magento\LayeredNavigation\Block\Navigation::getLayer()
- * @covers \Magento\LayeredNavigation\Block\Navigation::getFilters()
- * @covers \Magento\LayeredNavigation\Block\Navigation::canShowBlock()
- */
- public function testCanShowBlock()
- {
- // getFilers()
- $filters = ['To' => 'be', 'or' => 'not', 'to' => 'be'];
- $this->filterListMock->expects($this->exactly(2))->method('getFilters')
- ->with($this->catalogLayerMock)
- ->will($this->returnValue($filters));
- $this->assertEquals($filters, $this->model->getFilters());
- // canShowBlock()
- $enabled = true;
- $this->visibilityFlagMock
- ->expects($this->once())
- ->method('isEnabled')
- ->with($this->catalogLayerMock, $filters)
- ->will($this->returnValue($enabled));
- $this->assertEquals($enabled, $this->model->canShowBlock());
- }
- public function testGetClearUrl()
- {
- $this->filterListMock->expects($this->any())->method('getFilters')->will($this->returnValue([]));
- $this->model->setLayout($this->layoutMock);
- $this->layoutMock->expects($this->once())->method('getChildName')->will($this->returnValue('sample block'));
- $blockMock = $this->getMockForAbstractClass(
- \Magento\Framework\View\Element\AbstractBlock::class,
- [],
- '',
- false
- );
- $clearUrl = 'very clear URL';
- $blockMock->setClearUrl($clearUrl);
- $this->layoutMock->expects($this->once())->method('getBlock')->will($this->returnValue($blockMock));
- $this->assertEquals($clearUrl, $this->model->getClearUrl());
- }
- }
|