Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AvailabilityFlagTest.php
Go to the documentation of this file.
1 <?php
8 
9 use \Magento\Catalog\Model\Layer\Category\AvailabilityFlag;
10 
11 class AvailabilityFlagTest extends \PHPUnit\Framework\TestCase
12 {
16  protected $filters;
17 
21  protected $filterMock;
22 
26  protected $layerMock;
27 
31  protected $stateMock;
32 
36  protected $model;
37 
38  protected function setUp()
39  {
40  $this->filterMock = $this->createMock(\Magento\Catalog\Model\Layer\Filter\AbstractFilter::class);
41  $this->filters = [$this->filterMock];
42  $this->layerMock = $this->createMock(\Magento\Catalog\Model\Layer::class);
43  $this->stateMock = $this->createMock(\Magento\Catalog\Model\Layer\State::class);
44  $this->model = new AvailabilityFlag();
45  }
46 
56  public function testIsEnabled($itemsCount, $filters, $expectedResult)
57  {
58  $this->layerMock->expects($this->any())->method('getState')->will($this->returnValue($this->stateMock));
59  $this->stateMock->expects($this->any())->method('getFilters')->will($this->returnValue($filters));
60  $this->filterMock->expects($this->once())->method('getItemsCount')->will($this->returnValue($itemsCount));
61 
62  $this->assertEquals($expectedResult, $this->model->isEnabled($this->layerMock, $this->filters));
63  }
64 
68  public function isEnabledDataProvider()
69  {
70  return [
71  [
72  'itemsCount' => 0,
73  'filters' => [],
74  'expectedResult' => false,
75  ],
76  [
77  'itemsCount' => 0,
78  'filters' => ['filter'],
79  'expectedResult' => true,
80  ],
81  [
82  'itemsCount' => 1,
83  'filters' => 0,
84  'expectedResult' => true,
85  ],
86  [
87  'itemsCount' => 1,
88  'filters' => ['filter'],
89  'expectedResult' => true,
90  ]
91  ];
92  }
93 }