Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ResultPageBuilderTest.php
Go to the documentation of this file.
1 <?php
8 
15 
16 class ResultPageBuilderTest extends \PHPUnit\Framework\TestCase
17 {
19  private $model;
20 
22  private $resultPageFactoryMock;
23 
25  private $engineResolverMock;
26 
28  private $searchFeatureConfigMock;
29 
31  private $messageManagerMock;
32 
33  protected function setUp()
34  {
35  $this->resultPageFactoryMock = $this->getMockBuilder(PageFactory::class)
36  ->disableOriginalConstructor()
37  ->getMock();
38  $this->engineResolverMock = $this->getMockBuilder(EngineResolverInterface::class)
39  ->getMockForAbstractClass();
40  $this->searchFeatureConfigMock = $this->getMockBuilder(ConfigInterface::class)
41  ->getMockForAbstractClass();
42  $this->messageManagerMock = $this->getMockBuilder(ManagerInterface::class)
43  ->getMockForAbstractClass();
44 
45  $this->model = new ResultPageBuilder(
46  $this->resultPageFactoryMock,
47  $this->engineResolverMock,
48  $this->searchFeatureConfigMock,
49  $this->messageManagerMock
50  );
51  }
52 
53  public function testBuild()
54  {
55  $currentEngine = 'current_engine';
56 
57  $this->engineResolverMock->expects($this->once())
58  ->method('getCurrentSearchEngine')
59  ->willReturn($currentEngine);
60 
61  $this->searchFeatureConfigMock->expects($this->once())
62  ->method('isFeatureSupported')
64  ->willReturn(true);
65 
66  $this->messageManagerMock->expects($this->never())
67  ->method('addNoticeMessage');
68 
69  $resultPageMock = $this->getMockBuilder(Page::class)
70  ->disableOriginalConstructor()
71  ->getMock();
72 
73  $this->resultPageFactoryMock->expects($this->once())
74  ->method('create')
75  ->willReturn($resultPageMock);
76 
77  $this->assertEquals($resultPageMock, $this->model->build());
78  }
79 
80  public function testBuildWithDisabledEngine()
81  {
82  $currentEngine = 'current_engine';
83 
84  $this->engineResolverMock->expects($this->once())
85  ->method('getCurrentSearchEngine')
86  ->willReturn($currentEngine);
87 
88  $this->searchFeatureConfigMock->expects($this->once())
89  ->method('isFeatureSupported')
91  ->willReturn(false);
92 
93  $this->messageManagerMock->expects($this->once())
94  ->method('addNoticeMessage');
95 
96  $resultPageMock = $this->getMockBuilder(Page::class)
97  ->disableOriginalConstructor()
98  ->getMock();
99 
100  $this->resultPageFactoryMock->expects($this->once())
101  ->method('create')
102  ->willReturn($resultPageMock);
103 
104  $this->assertEquals($resultPageMock, $this->model->build());
105  }
106 }