Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
DataOptionTest.php
Go to the documentation of this file.
1 <?php
8 
10 
11 class DataOptionTest extends \PHPUnit\Framework\TestCase
12 {
16  private $uninstallCollector;
17 
21  private $request;
22 
26  private $response;
27 
31  private $mvcEvent;
32 
36  private $controller;
37 
38  public function setUp()
39  {
40  $this->request = $this->createMock(\Zend\Http\PhpEnvironment\Request::class);
41  $this->response = $this->createMock(\Zend\Http\PhpEnvironment\Response::class);
42  $routeMatch = $this->createMock(\Zend\Mvc\Router\RouteMatch::class);
43 
44  $this->uninstallCollector = $this->createMock(\Magento\Setup\Model\UninstallCollector::class);
45  $this->controller = new DataOption($this->uninstallCollector);
46 
47  $this->mvcEvent = $this->createMock(\Zend\Mvc\MvcEvent::class);
48  $this->mvcEvent->expects($this->any())
49  ->method('setRequest')
50  ->with($this->request)
51  ->willReturn($this->mvcEvent);
52  $this->mvcEvent->expects($this->any())
53  ->method('setResponse')
54  ->with($this->response)
55  ->willReturn($this->mvcEvent);
56  $this->mvcEvent->expects($this->any())
57  ->method('setTarget')
58  ->with($this->controller)
59  ->willReturn($this->mvcEvent);
60  $this->mvcEvent->expects($this->any())->method('getRouteMatch')->willReturn($routeMatch);
61  }
62 
63  public function testIndexAction()
64  {
65  $viewModel = $this->controller->indexAction();
66  $this->assertInstanceOf(\Zend\View\Model\ViewModel::class, $viewModel);
67  $this->assertTrue($viewModel->terminate());
68  }
69 
70  public function testNoHasUninstallAction()
71  {
72  $this->request->expects($this->any())->method('getContent')->willReturn('{}');
73  $this->controller->setEvent($this->mvcEvent);
74  $this->controller->dispatch($this->request, $this->response);
75  $this->uninstallCollector->expects($this->never())->method('collectUninstall')->with(["some_module"]);
76  $this->assertFalse($this->controller->hasUninstallAction()->getVariable("hasUninstall"));
77  }
78 
85  public function testHasUninstallAction($content, $expected, $result)
86  {
87  $this->request->expects($this->any())->method('getContent')->willReturn($content);
88  $this->controller->setEvent($this->mvcEvent);
89  $this->controller->dispatch($this->request, $this->response);
90 
91  $this->uninstallCollector
92  ->expects($this->once())
93  ->method('collectUninstall')
94  ->with(["some_module"])
95  ->willReturn($expected);
96 
97  $this->assertSame($result, $this->controller->hasUninstallAction()->getVariable("hasUninstall"));
98  }
99 
104  {
105  $content = '{"moduleName": "some_module"}';
106  return [
107  'module has uninstall class' => [$content, ['module'], true],
108  'module does not have uninstall class' => [$content, [], false],
109  ];
110  }
111 }
testHasUninstallAction($content, $expected, $result)
$viewModel