Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CollectionProcessorTest.php
Go to the documentation of this file.
1 <?php
7 
12 
13 class CollectionProcessorTest extends \PHPUnit\Framework\TestCase
14 {
21  private function getModel(array $processors)
22  {
23  return new CollectionProcessor($processors);
24  }
25 
26  public function testProcess()
27  {
29  $processorOneMock = $this->getMockBuilder(CollectionProcessorInterface::class)
30  ->getMock();
31 
33  $processorTwoMock = $this->getMockBuilder(CollectionProcessorInterface::class)
34  ->getMock();
35 
36  $processors = [$processorOneMock, $processorTwoMock];
37 
38  $model = $this->getModel($processors);
39 
41  $searchCriteriaMock = $this->getMockBuilder(SearchCriteriaInterface::class)
42  ->getMock();
43 
45  $collectionMock = $this->getMockBuilder(AbstractDb::class)
46  ->disableOriginalConstructor()
47  ->getMock();
48 
49  $processorOneMock->expects($this->once())
50  ->method('process')
51  ->with($searchCriteriaMock, $collectionMock);
52 
53  $processorTwoMock->expects($this->once())
54  ->method('process')
55  ->with($searchCriteriaMock, $collectionMock);
56 
57  $model->process($searchCriteriaMock, $collectionMock);
58  }
59 
63  public function testProcessWithException()
64  {
66  $processorOneMock = $this->getMockBuilder(CollectionProcessorInterface::class)
67  ->setMethods(['process'])
68  ->getMock();
69 
71  $processorTwoMock = $this->getMockBuilder(\stdClass::class)
72  ->setMethods(['process'])
73  ->getMock();
74 
75  $processors = [$processorOneMock, $processorTwoMock];
76 
77  $model = $this->getModel($processors);
78 
80  $searchCriteriaMock = $this->getMockBuilder(SearchCriteriaInterface::class)
81  ->getMock();
82 
84  $collectionMock = $this->getMockBuilder(AbstractDb::class)
85  ->disableOriginalConstructor()
86  ->getMock();
87 
88  $processorOneMock->expects($this->once())
89  ->method('process')
90  ->with($searchCriteriaMock, $collectionMock);
91 
92  $processorTwoMock->expects($this->never())
93  ->method('process');
94 
95  $model->process($searchCriteriaMock, $collectionMock);
96  }
97 }