Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
IndexerHandlerFactoryTest.php
Go to the documentation of this file.
1 <?php
7 
12 
13 class IndexerHandlerFactoryTest extends \PHPUnit\Framework\TestCase
14 {
16  private $model;
17 
19  private $objectManagerMock;
20 
22  private $engineResolverMock;
23 
24  protected function setUp()
25  {
26  $this->objectManagerMock = $this->getMockBuilder(ObjectManagerInterface::class)
27  ->getMockForAbstractClass();
28  $this->engineResolverMock = $this->getMockBuilder(EngineResolverInterface::class)
29  ->getMockForAbstractClass();
30  }
31 
32  public function testCreate()
33  {
34  $currentHandler = 'current_handler';
35  $currentHandlerClass = IndexerInterface::class;
36  $handlers = [
37  $currentHandler => $currentHandlerClass,
38  ];
39  $data = ['data'];
40 
41  $this->engineResolverMock->expects($this->once())
42  ->method('getCurrentSearchEngine')
43  ->willReturn($currentHandler);
44 
45  $indexerMock = $this->getMockBuilder($currentHandlerClass)
46  ->getMockForAbstractClass();
47 
48  $this->objectManagerMock->expects($this->once())
49  ->method('create')
50  ->with($currentHandlerClass, $data)
51  ->willReturn($indexerMock);
52 
53  $indexerMock->expects($this->once())
54  ->method('isAvailable')
55  ->willReturn(true);
56 
57  $this->model = new IndexerHandlerFactory(
58  $this->objectManagerMock,
59  $this->engineResolverMock,
60  $handlers
61  );
62 
63  $this->assertEquals($indexerMock, $this->model->create($data));
64  }
65 
70  public function testCreateWithoutHandlers()
71  {
72  $currentHandler = 'current_handler';
73  $handlers = [];
74  $data = ['data'];
75 
76  $this->engineResolverMock->expects($this->once())
77  ->method('getCurrentSearchEngine')
78  ->willReturn($currentHandler);
79 
80  $this->model = new IndexerHandlerFactory(
81  $this->objectManagerMock,
82  $this->engineResolverMock,
83  $handlers
84  );
85 
86  $this->model->create($data);
87  }
88 
93  public function testCreateWithWrongHandler()
94  {
95  $currentHandler = 'current_handler';
96  $currentHandlerClass = \stdClass::class;
97  $handlers = [
98  $currentHandler => $currentHandlerClass,
99  ];
100  $data = ['data'];
101 
102  $this->engineResolverMock->expects($this->once())
103  ->method('getCurrentSearchEngine')
104  ->willReturn($currentHandler);
105 
106  $indexerMock = $this->getMockBuilder($currentHandlerClass)
107  ->getMockForAbstractClass();
108 
109  $this->objectManagerMock->expects($this->once())
110  ->method('create')
111  ->with($currentHandlerClass, $data)
112  ->willReturn($indexerMock);
113 
114  $this->model = new IndexerHandlerFactory(
115  $this->objectManagerMock,
116  $this->engineResolverMock,
117  $handlers
118  );
119 
120  $this->model->create($data);
121  }
122 
128  {
129  $currentHandler = 'current_handler';
130  $currentHandlerClass = IndexerInterface::class;
131  $handlers = [
132  $currentHandler => $currentHandlerClass,
133  ];
134  $data = ['data'];
135 
136  $this->engineResolverMock->expects($this->once())
137  ->method('getCurrentSearchEngine')
138  ->willReturn($currentHandler);
139 
140  $indexerMock = $this->getMockBuilder($currentHandlerClass)
141  ->getMockForAbstractClass();
142 
143  $this->objectManagerMock->expects($this->once())
144  ->method('create')
145  ->with($currentHandlerClass, $data)
146  ->willReturn($indexerMock);
147 
148  $indexerMock->expects($this->once())
149  ->method('isAvailable')
150  ->willReturn(false);
151 
152  $this->model = new IndexerHandlerFactory(
153  $this->objectManagerMock,
154  $this->engineResolverMock,
155  $handlers
156  );
157 
158  $this->model->create($data);
159  }
160 }