Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
All Data Structures Namespaces Files Functions Variables Pages
MaintenanceTest.php
Go to the documentation of this file.
1 <?php
8 
9 use \Magento\Setup\Controller\Maintenance;
10 use \Magento\Setup\Controller\ResponseTypeInterface;
11 
12 class MaintenanceTest extends \PHPUnit\Framework\TestCase
13 {
14 
18  private $maintenanceMode;
19 
25  private $controller;
26 
27  public function setUp()
28  {
29  $this->maintenanceMode = $this->createMock(\Magento\Framework\App\MaintenanceMode::class);
30  $this->controller = new Maintenance($this->maintenanceMode);
31 
32  $request = $this->createMock(\Zend\Http\PhpEnvironment\Request::class);
33  $response = $this->createMock(\Zend\Http\PhpEnvironment\Response::class);
34  $routeMatch = $this->createMock(\Zend\Mvc\Router\RouteMatch::class);
35 
36  $mvcEvent = $this->createMock(\Zend\Mvc\MvcEvent::class);
37  $mvcEvent->expects($this->any())->method('setRequest')->with($request)->willReturn($mvcEvent);
38  $mvcEvent->expects($this->any())->method('setResponse')->with($response)->willReturn($mvcEvent);
39  $mvcEvent->expects($this->any())->method('setTarget')->with($this->controller)->willReturn($mvcEvent);
40  $mvcEvent->expects($this->any())->method('getRouteMatch')->willReturn($routeMatch);
41  $contentArray = '{"disable":false}';
42  $request->expects($this->any())->method('getContent')->willReturn($contentArray);
43 
44  $this->controller->setEvent($mvcEvent);
45  $this->controller->dispatch($request, $response);
46  }
47 
48  public function testIndexAction()
49  {
50  $this->maintenanceMode->expects($this->once())->method('set');
51  $jsonModel = $this->controller->indexAction();
52  $this->assertInstanceOf(\Zend\View\Model\JsonModel::class, $jsonModel);
53  $variables = $jsonModel->getVariables();
54  $this->assertArrayHasKey('responseType', $variables);
55  $this->assertEquals(ResponseTypeInterface::RESPONSE_TYPE_SUCCESS, $variables['responseType']);
56  }
57 
59  {
60  $this->maintenanceMode->expects($this->once())->method('set')->will(
61  $this->throwException(new \Exception("Test error message"))
62  );
63  $jsonModel = $this->controller->indexAction();
64  $this->assertInstanceOf(\Zend\View\Model\JsonModel::class, $jsonModel);
65  $variables = $jsonModel->getVariables();
66  $this->assertArrayHasKey('responseType', $variables);
67  $this->assertEquals(ResponseTypeInterface::RESPONSE_TYPE_ERROR, $variables['responseType']);
68  $this->assertArrayHasKey('error', $variables);
69  $this->assertEquals("Test error message", $variables['error']);
70  }
71 }
$response
Definition: 404.php:11