Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ModuleUninstallTest.php
Go to the documentation of this file.
1 <?php
7 
9 
10 class ModuleUninstallTest extends \PHPUnit\Framework\TestCase
11 {
12  public function testUninstallRemoveData()
13  {
14  $output =
15  $this->getMockForAbstractClass(\Symfony\Component\Console\Output\OutputInterface::class, [], '', false);
16  $packageInfoFactory = $this->createMock(\Magento\Framework\Module\PackageInfoFactory::class);
17  $packageInfo = $this->createMock(\Magento\Framework\Module\PackageInfo::class);
18  $packageInfo->expects($this->once())->method('getModuleName')->willReturn('Module_A');
19  $packageInfoFactory->expects($this->any())->method('create')->willReturn($packageInfo);
20  $moduleUninstaller = $this->createMock(\Magento\Setup\Model\ModuleUninstaller::class);
21  $moduleUninstaller->expects($this->once())->method('uninstallData')->with($output, ['Module_A']);
22  $moduleRegistryUninstaller =
23  $this->createMock(\Magento\Setup\Model\ModuleRegistryUninstaller::class);
24  $moduleRegistryUninstaller->expects($this->once())->method('removeModulesFromDb')->with($output, ['Module_A']);
25  $moduleRegistryUninstaller->expects($this->once())
26  ->method('removeModulesFromDeploymentConfig')
27  ->with($output, ['Module_A']);
28 
29  $moduleUninstall = new ModuleUninstall($moduleUninstaller, $moduleRegistryUninstaller, $packageInfoFactory);
30  $moduleUninstall->uninstall($output, 'vendor/module-package', true);
31  }
32 
33  public function testUninstallNotRemoveData()
34  {
35  $output =
36  $this->getMockForAbstractClass(\Symfony\Component\Console\Output\OutputInterface::class, [], '', false);
37  $packageInfoFactory = $this->createMock(\Magento\Framework\Module\PackageInfoFactory::class);
38  $packageInfo = $this->createMock(\Magento\Framework\Module\PackageInfo::class);
39  $packageInfo->expects($this->once())->method('getModuleName')->willReturn('Module_A');
40  $packageInfoFactory->expects($this->any())->method('create')->willReturn($packageInfo);
41  $moduleUninstaller = $this->createMock(\Magento\Setup\Model\ModuleUninstaller::class);
42  $moduleUninstaller->expects($this->never())->method('uninstallData');
43  $moduleRegistryUninstaller =
44  $this->createMock(\Magento\Setup\Model\ModuleRegistryUninstaller::class);
45  $moduleRegistryUninstaller->expects($this->once())->method('removeModulesFromDb')->with($output, ['Module_A']);
46  $moduleRegistryUninstaller->expects($this->once())
47  ->method('removeModulesFromDeploymentConfig')
48  ->with($output, ['Module_A']);
49 
50  $moduleUninstall = new ModuleUninstall($moduleUninstaller, $moduleRegistryUninstaller, $packageInfoFactory);
51  $moduleUninstall->uninstall($output, 'vendor/module-package', false);
52  }
53 }