Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
MaintenanceModeTest.php
Go to the documentation of this file.
1 <?php
8 
9 use \Magento\Framework\App\MaintenanceMode;
10 
11 class MaintenanceModeTest extends \PHPUnit\Framework\TestCase
12 {
16  protected $model;
17 
21  protected $flagDir;
22 
23  protected function setup()
24  {
25  $this->flagDir = $this->getMockForAbstractClass(\Magento\Framework\Filesystem\Directory\WriteInterface::class);
26  $filesystem = $this->createMock(\Magento\Framework\Filesystem::class);
27  $filesystem->expects($this->any())
28  ->method('getDirectoryWrite')
29  ->will($this->returnValue($this->flagDir));
30 
31  $this->model = new MaintenanceMode($filesystem);
32  }
33 
34  public function testIsOnInitial()
35  {
36  $this->flagDir->expects($this->once())->method('isExist')
38  ->will($this->returnValue(false));
39  $this->assertFalse($this->model->isOn());
40  }
41 
42  public function testisOnWithoutIP()
43  {
44  $mapisExist = [
47  ];
48  $this->flagDir->expects($this->exactly(2))->method('isExist')
49  ->will(($this->returnValueMap($mapisExist)));
50  $this->assertTrue($this->model->isOn());
51  }
52 
53  public function testisOnWithIP()
54  {
55  $mapisExist = [
58  ];
59  $this->flagDir->expects($this->exactly(2))->method('isExist')
60  ->will(($this->returnValueMap($mapisExist)));
61  $this->assertFalse($this->model->isOn());
62  }
63 
64  public function testisOnWithIPNoMaintenance()
65  {
66  $this->flagDir->expects($this->once())->method('isExist')
68  ->willReturn(false);
69  $this->assertFalse($this->model->isOn());
70  }
71 
72  public function testMaintenanceModeOn()
73  {
74  $this->flagDir->expects($this->at(0))->method('isExist')->with(MaintenanceMode::FLAG_FILENAME)
75  ->will($this->returnValue(false));
76  $this->flagDir->expects($this->at(1))->method('touch')->will($this->returnValue(true));
77  $this->flagDir->expects($this->at(2))->method('isExist')->with(MaintenanceMode::FLAG_FILENAME)
78  ->will($this->returnValue(true));
79  $this->flagDir->expects($this->at(3))->method('isExist')->with(MaintenanceMode::IP_FILENAME)
80  ->will($this->returnValue(false));
81 
82  $this->assertFalse($this->model->isOn());
83  $this->assertTrue($this->model->set(true));
84  $this->assertTrue($this->model->isOn());
85  }
86 
87  public function testMaintenanceModeOff()
88  {
89  $this->flagDir->expects($this->at(0))->method('isExist')->with(MaintenanceMode::FLAG_FILENAME)
90  ->will($this->returnValue(true));
91  $this->flagDir->expects($this->at(1))->method('delete')->with(MaintenanceMode::FLAG_FILENAME)
92  ->will($this->returnValue(false));
93  $this->flagDir->expects($this->at(2))->method('isExist')->with(MaintenanceMode::FLAG_FILENAME)
94  ->will($this->returnValue(false));
95 
96  $this->assertFalse($this->model->set(false));
97  $this->assertFalse($this->model->isOn());
98  }
99 
100  public function testSetAddresses()
101  {
102  $mapisExist = [
105  ];
106  $this->flagDir->expects($this->any())->method('isExist')->will($this->returnValueMap($mapisExist));
107  $this->flagDir->expects($this->any())->method('writeFile')
109  ->will($this->returnValue(true));
110 
111  $this->flagDir->expects($this->any())->method('readFile')
113  ->will($this->returnValue(''));
114 
115  $this->model->setAddresses('');
116  $this->assertEquals([''], $this->model->getAddressInfo());
117  }
118 
119  public function testSetSingleAddresses()
120  {
121  $mapisExist = [
124  ];
125  $this->flagDir->expects($this->any())->method('isExist')->will($this->returnValueMap($mapisExist));
126  $this->flagDir->expects($this->any())->method('delete')->will($this->returnValueMap($mapisExist));
127 
128  $this->flagDir->expects($this->any())->method('writeFile')
129  ->will($this->returnValue(10));
130 
131  $this->flagDir->expects($this->any())->method('readFile')
133  ->will($this->returnValue('address1'));
134 
135  $this->model->setAddresses('address1');
136  $this->assertEquals(['address1'], $this->model->getAddressInfo());
137  }
138 
139  public function testOnSetMultipleAddresses()
140  {
141  $mapisExist = [
144  ];
145  $this->flagDir->expects($this->any())->method('isExist')->will($this->returnValueMap($mapisExist));
146  $this->flagDir->expects($this->any())->method('delete')->will($this->returnValueMap($mapisExist));
147 
148  $this->flagDir->expects($this->any())->method('writeFile')
149  ->will($this->returnValue(10));
150 
151  $this->flagDir->expects($this->any())->method('readFile')
153  ->will($this->returnValue('address1,10.50.60.123'));
154 
155  $expectedArray = ['address1', '10.50.60.123'];
156  $this->model->setAddresses('address1,10.50.60.123');
157  $this->assertEquals($expectedArray, $this->model->getAddressInfo());
158  $this->assertFalse($this->model->isOn('address1'));
159  $this->assertTrue($this->model->isOn('address3'));
160  }
161 
162  public function testOffSetMultipleAddresses()
163  {
164  $mapisExist = [
167  ];
168  $this->flagDir->expects($this->any())->method('isExist')->will($this->returnValueMap($mapisExist));
169  $this->flagDir->expects($this->any())->method('delete')->will($this->returnValueMap($mapisExist));
170 
171  $this->flagDir->expects($this->any())->method('readFile')
173  ->will($this->returnValue('address1,10.50.60.123'));
174 
175  $expectedArray = ['address1', '10.50.60.123'];
176  $this->model->setAddresses('address1,10.50.60.123');
177  $this->assertEquals($expectedArray, $this->model->getAddressInfo());
178  $this->assertFalse($this->model->isOn('address1'));
179  $this->assertFalse($this->model->isOn('address3'));
180  }
181 }
$filesystem