Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
IntervalFactoryTest.php
Go to the documentation of this file.
1 <?php
7 
12 
13 class IntervalFactoryTest 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  $dataProvider = 'current_interval';
35  $dataProviderClass = IntervalInterface::class;
36  $dataProviders = [
37  $dataProvider => $dataProviderClass,
38  ];
39  $data = ['data'];
40 
41  $this->engineResolverMock->expects($this->once())
42  ->method('getCurrentSearchEngine')
43  ->willReturn($dataProvider);
44 
45  $dataProviderMock = $this->getMockBuilder($dataProviderClass)
46  ->getMockForAbstractClass();
47 
48  $this->objectManagerMock->expects($this->once())
49  ->method('create')
50  ->with($dataProviderClass, $data)
51  ->willReturn($dataProviderMock);
52 
53  $this->model = new IntervalFactory(
54  $this->objectManagerMock,
55  $this->engineResolverMock,
56  $dataProviders
57  );
58 
59  $this->assertEquals($dataProviderMock, $this->model->create($data));
60  }
61 
66  public function testCreateWithoutIntervals()
67  {
68  $dataProvider = 'current_interval';
69  $dataProviders = [];
70 
71  $this->engineResolverMock->expects($this->once())
72  ->method('getCurrentSearchEngine')
73  ->willReturn($dataProvider);
74 
75  $this->model = new IntervalFactory(
76  $this->objectManagerMock,
77  $this->engineResolverMock,
78  $dataProviders
79  );
80  }
81 
86  public function testCreateWithWrongInterval()
87  {
88  $dataProvider = 'current_interval';
89  $dataProviderClass = \stdClass::class;
90  $dataProviders = [
91  $dataProvider => $dataProviderClass,
92  ];
93  $data = ['data'];
94 
95  $this->engineResolverMock->expects($this->once())
96  ->method('getCurrentSearchEngine')
97  ->willReturn($dataProvider);
98 
99  $dataProviderMock = $this->getMockBuilder($dataProviderClass)
100  ->getMockForAbstractClass();
101 
102  $this->objectManagerMock->expects($this->once())
103  ->method('create')
104  ->with($dataProviderClass, $data)
105  ->willReturn($dataProviderMock);
106 
107  $this->model = new IntervalFactory(
108  $this->objectManagerMock,
109  $this->engineResolverMock,
110  $dataProviders
111  );
112 
113  $this->model->create($data);
114  }
115 }