9 use Magento\Setup\Model\Cron\ComponentUninstallerFactory;
41 private $objectManager;
46 private $objectManagerProvider;
51 private $moduleUninstallHelper;
56 private $themeUninstallHelper;
61 private $composerInformation;
70 $this->
output = $this->getMockForAbstractClass(
71 \Symfony\Component\Console\Output\OutputInterface::class,
77 $this->moduleUninstallHelper = $this->createMock(\
Magento\
Setup\Model\
Cron\Helper\ModuleUninstall::class);
78 $this->themeUninstallHelper = $this->createMock(\
Magento\
Setup\Model\
Cron\Helper\ThemeUninstall::class);
79 $this->composerInformation = $this->createMock(\
Magento\Framework\Composer\ComposerInformation::class);
80 $this->objectManagerProvider =
81 $this->createMock(\
Magento\
Setup\Model\ObjectManagerProvider::class);
82 $this->objectManager = $this->getMockForAbstractClass(
83 \
Magento\Framework\ObjectManagerInterface::class,
89 $packageInfoFactory = $this->createMock(\
Magento\Framework\
Module\PackageInfoFactory::class);
90 $packageInfo = $this->createMock(\
Magento\Framework\
Module\PackageInfo::class);
91 $packageInfoFactory->expects($this->any())->method(
'create')->willReturn($packageInfo);
92 $this->objectManagerProvider->expects($this->any())->method(
'get')->willReturn($this->objectManager);
93 $this->updater = $this->createMock(\
Magento\
Setup\Model\Updater::class);
94 $this->quence = $this->createPartialMock(\
Magento\
Setup\Model\
Cron\Queue::class, [
'addJobs']);
97 private function setUpUpdater()
99 $this->updater->expects($this->any())->method(
'createUpdaterTask')->willReturn(
'');
102 private function setUpQuence()
104 $this->quence->expects($this->once())->method(
'addJobs');
109 $this->setUpUpdater();
110 $this->setUpQuence();
111 $this->moduleUninstallHelper->expects($this->once())
112 ->method(
'uninstall')
113 ->with($this->
output,
'vendor/module-package',
true);
116 $this->composerInformation,
117 $this->moduleUninstallHelper,
118 $this->themeUninstallHelper,
119 $this->objectManagerProvider,
124 'setup:component:uninstall',
131 'dataOption' =>
'true' 135 $this->composerInformation->expects($this->once())
136 ->method(
'getInstalledMagentoPackages')
138 $this->job->execute();
143 $this->setUpUpdater();
144 $this->setUpQuence();
145 $this->composerInformation->expects($this->once())
146 ->method(
'getInstalledMagentoPackages')
149 $this->moduleUninstallHelper->expects($this->never())->method($this->anything());
150 $this->themeUninstallHelper->expects($this->never())->method($this->anything());
153 $this->composerInformation,
154 $this->moduleUninstallHelper,
155 $this->themeUninstallHelper,
156 $this->objectManagerProvider,
161 'setup:component:uninstall',
170 $this->job->execute();
175 $this->setUpUpdater();
176 $this->setUpQuence();
177 $this->composerInformation->expects($this->once())
178 ->method(
'getInstalledMagentoPackages')
180 $this->themeUninstallHelper->expects($this->once())
181 ->method(
'uninstall')
182 ->with($this->
output,
'vendor/theme-a');
183 $this->moduleUninstallHelper->expects($this->never())->method($this->anything());
186 $this->composerInformation,
187 $this->moduleUninstallHelper,
188 $this->themeUninstallHelper,
189 $this->objectManagerProvider,
194 'setup:component:uninstall',
203 $this->job->execute();
212 $this->setUpUpdater();
213 $this->composerInformation->expects($this->once())
214 ->method(
'getInstalledMagentoPackages')
215 ->willReturn([
'vendor/unknown-a' => [
'type' =>
'unknown']]);
217 $this->moduleUninstallHelper->expects($this->never())->method($this->anything());
218 $this->themeUninstallHelper->expects($this->never())->method($this->anything());
221 $this->composerInformation,
222 $this->moduleUninstallHelper,
223 $this->themeUninstallHelper,
224 $this->objectManagerProvider,
229 'setup:component:uninstall',
238 $this->job->execute();
249 $this->moduleUninstallHelper->expects($this->never())->method($this->anything());
250 $this->themeUninstallHelper->expects($this->never())->method($this->anything());
253 $this->composerInformation,
254 $this->moduleUninstallHelper,
255 $this->themeUninstallHelper,
256 $this->objectManagerProvider,
261 'setup:component:uninstall',
264 $this->job->execute();
274 'no name' => [[
'components' => [[
'key' =>
'value']]]],
275 'components not array' => [[
'components' =>
'']],
285 $this->updater->expects($this->once())->method(
'createUpdaterTask')->willReturn(
'error');
286 $this->composerInformation->expects($this->once())
287 ->method(
'getInstalledMagentoPackages')
291 $this->composerInformation,
292 $this->moduleUninstallHelper,
293 $this->themeUninstallHelper,
294 $this->objectManagerProvider,
299 'setup:component:uninstall',
308 $this->job->execute();
output($string, $level=INFO, $label='')
executeWrongFormatDataProvider()
testExecuteWrongFormat(array $params)
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE]