Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ComparedTest.php
Go to the documentation of this file.
1 <?php
8 
9 use \Magento\Reports\Block\Product\Compared;
10 use \Magento\Reports\Model\Product\Index\Factory;
11 
12 class ComparedTest extends \PHPUnit\Framework\TestCase
13 {
14 
18  private $sut;
19 
23  private $factoryMock;
24 
25  protected function setUp()
26  {
27  $contextMock = $this->getMockBuilder(\Magento\Catalog\Block\Product\Context::class)
28  ->disableOriginalConstructor()
29  ->getMock();
30 
31  $visibilityMock = $this->getMockBuilder(\Magento\Catalog\Model\Product\Visibility::class)
32  ->disableOriginalConstructor()
33  ->getMock();
34 
35  $this->factoryMock = $this->getMockBuilder(Factory::class)
36  ->disableOriginalConstructor()
37  ->setMethods(['get'])
38  ->getMock();
39 
40  $this->sut = new Compared($contextMock, $visibilityMock, $this->factoryMock);
41  }
42 
48  public function testGetModelException()
49  {
50  $this->factoryMock->expects($this->once())->method('get')->willThrowException(new \InvalidArgumentException);
51 
52  $this->sut->getModel();
53  }
54 
58  public function testGetModel()
59  {
60  $indexMock = $this->getMockBuilder(\Magento\Reports\Model\Product\Index\AbstractIndex::class)
61  ->disableOriginalConstructor()
62  ->getMock();
63 
64  $this->factoryMock->expects($this->once())->method('get')->willReturn($indexMock);
65 
66  $this->assertSame($indexMock, $this->sut->getModel());
67  }
68 }