Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ElementVisibilityCompositeTest.php
Go to the documentation of this file.
1 <?php
7 
10 
11 class ElementVisibilityCompositeTest extends \PHPUnit\Framework\TestCase
12 {
16  private $model;
17 
21  private $firstVisibilityMock;
22 
26  private $secondVisibilityMock;
27 
28  protected function setUp()
29  {
30  $this->firstVisibilityMock = $this->getMockBuilder(ElementVisibilityInterface::class)
31  ->getMockForAbstractClass();
32  $this->secondVisibilityMock = $this->getMockBuilder(ElementVisibilityInterface::class)
33  ->getMockForAbstractClass();
34 
35  $this->model = new ElementVisibilityComposite([$this->firstVisibilityMock, $this->secondVisibilityMock]);
36  }
37 
44  public function testException()
45  {
46  $visibility = [
47  'stdClass' => new \stdClass()
48  ];
49 
50  new ElementVisibilityComposite($visibility);
51  }
52 
61  public function testDisabled($firstExpects, $firstResult, $secondExpects, $secondResult, $expectedResult)
62  {
63  $path = 'some/path';
64  $this->firstVisibilityMock->expects($firstExpects)
65  ->method('isDisabled')
66  ->with($path)
67  ->willReturn($firstResult);
68  $this->secondVisibilityMock->expects($secondExpects)
69  ->method('isDisabled')
70  ->with($path)
71  ->willReturn($secondResult);
72 
73  $this->assertSame($expectedResult, $this->model->isDisabled($path));
74  }
75 
84  public function testHidden($firstExpects, $firstResult, $secondExpects, $secondResult, $expectedResult)
85  {
86  $path = 'some/path';
87  $this->firstVisibilityMock->expects($firstExpects)
88  ->method('isHidden')
89  ->with($path)
90  ->willReturn($firstResult);
91  $this->secondVisibilityMock->expects($secondExpects)
92  ->method('isHidden')
93  ->with($path)
94  ->willReturn($secondResult);
95 
96  $this->assertSame($expectedResult, $this->model->isHidden($path));
97  }
98 
102  public function visibilityDataProvider()
103  {
104  return [
105  [$this->once(), false, $this->once(), false, false],
106  [$this->once(), false, $this->once(), true, true],
107  [$this->once(), true, $this->never(), true, true],
108  [$this->once(), true, $this->never(), false, true],
109  ];
110  }
111 }
testHidden($firstExpects, $firstResult, $secondExpects, $secondResult, $expectedResult)
testDisabled($firstExpects, $firstResult, $secondExpects, $secondResult, $expectedResult)