public function testRunUninstallReadinessCheckWithError() { $packages = ['verndor/module' => 'magento2-module', 'verndor/theme' => 'magento2-theme', 'verndor/metapackage' => 'metapackage', 'verndor/language' => 'magento2-language']; $this->composerInfo->expects($this->once())->method('getRootRequiredPackageTypesByName')->willReturn($packages); $this->packageDependencyChecker->expects($this->once())->method('checkDependencies')->with(array_keys($packages))->willReturn([]); $this->themeDependencyChecker->expects($this->once())->method('checkChildThemeByPackagesName')->with(['verndor/theme'])->willReturn(['Error message']); $result = $this->uninstallDependencyCheck->runUninstallReadinessCheck(array_keys($packages)); $this->assertEquals(['success' => false, 'error' => 'Error message'], $result); }
/** * Verifies component dependency for uninstall * * @return JsonModel */ public function uninstallDependencyCheckAction() { $responseType = ResponseTypeInterface::RESPONSE_TYPE_SUCCESS; $packages = Json::decode($this->getRequest()->getContent(), Json::TYPE_ARRAY); $packagesToDelete = []; foreach ($packages as $package) { $packagesToDelete[] = $package['name']; } $dependencyCheck = $this->uninstallDependencyCheck->runUninstallReadinessCheck($packagesToDelete); $data = []; if (!$dependencyCheck['success']) { $responseType = ResponseTypeInterface::RESPONSE_TYPE_ERROR; $data['errorMessage'] = $dependencyCheck['error']; } $data['responseType'] = $responseType; return new JsonModel($data); }