From 27972acd81a0df5ea58d667de49ebe9b508d40c0 Mon Sep 17 00:00:00 2001 From: Oleksandr Karpenko <okarpenko@ebay.com> Date: Wed, 21 Oct 2015 11:17:13 +0300 Subject: [PATCH] MAGETWO-44017: Exception appears when user opens scheduled import export without installed imort/export --- .../Framework/Module/DependencyChecker.php | 3 ++- .../Module/Test/Unit/DependencyCheckerTest.php | 18 ++++++++++++++---- .../Module/Test/Unit/PackageInfoTest.php | 5 +++++ 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/lib/internal/Magento/Framework/Module/DependencyChecker.php b/lib/internal/Magento/Framework/Module/DependencyChecker.php index e84e2b99a11..71c811daf3c 100644 --- a/lib/internal/Magento/Framework/Module/DependencyChecker.php +++ b/lib/internal/Magento/Framework/Module/DependencyChecker.php @@ -99,7 +99,8 @@ class DependencyChecker $dependenciesMissing = []; $paths = $this->graph->findPathsToReachableNodes($moduleName, $graphMode); $modules = array_merge( - array_keys($this->fullModuleList), $this->packageInfo->getNonExistingDependencies() + array_keys($this->fullModuleList), + $this->packageInfo->getNonExistingDependencies() ); foreach ($modules as $module) { if (isset($paths[$module])) { diff --git a/lib/internal/Magento/Framework/Module/Test/Unit/DependencyCheckerTest.php b/lib/internal/Magento/Framework/Module/Test/Unit/DependencyCheckerTest.php index eb09d4a41ac..0d7774d8dda 100644 --- a/lib/internal/Magento/Framework/Module/Test/Unit/DependencyCheckerTest.php +++ b/lib/internal/Magento/Framework/Module/Test/Unit/DependencyCheckerTest.php @@ -70,10 +70,12 @@ class DependencyCheckerTest extends \PHPUnit_Framework_TestCase public function testCheckDependenciesWhenDisableModules() { - $this->listMock - ->expects($this->any()) + $this->listMock->expects($this->any()) ->method('getNames') ->will($this->returnValue(['A', 'B', 'C', 'D', 'E'])); + $this->packageInfoMock->expects($this->atLeastOnce()) + ->method('getNonExistingDependencies') + ->willReturn([]); $this->checker = new DependencyChecker($this->listMock, $this->loaderMock, $this->packageInfoFactoryMock); $actual = $this->checker->checkDependenciesWhenDisableModules(['B', 'D']); @@ -83,6 +85,9 @@ class DependencyCheckerTest extends \PHPUnit_Framework_TestCase public function testCheckDependenciesWhenDisableModulesWithCurEnabledModules() { + $this->packageInfoMock->expects($this->atLeastOnce()) + ->method('getNonExistingDependencies') + ->willReturn([]); $this->checker = new DependencyChecker($this->listMock, $this->loaderMock, $this->packageInfoFactoryMock); $actual = $this->checker->checkDependenciesWhenDisableModules(['B', 'D'], ['C', 'D', 'E']); @@ -92,10 +97,12 @@ class DependencyCheckerTest extends \PHPUnit_Framework_TestCase public function testCheckDependenciesWhenEnableModules() { - $this->listMock - ->expects($this->any()) + $this->listMock->expects($this->any()) ->method('getNames') ->will($this->returnValue(['C'])); + $this->packageInfoMock->expects($this->atLeastOnce()) + ->method('getNonExistingDependencies') + ->willReturn([]); $this->checker = new DependencyChecker($this->listMock, $this->loaderMock, $this->packageInfoFactoryMock); $actual = $this->checker->checkDependenciesWhenEnableModules(['B', 'D']); $expected = [ @@ -107,6 +114,9 @@ class DependencyCheckerTest extends \PHPUnit_Framework_TestCase public function testCheckDependenciesWhenEnableModulesWithCurEnabledModules() { + $this->packageInfoMock->expects($this->atLeastOnce()) + ->method('getNonExistingDependencies') + ->willReturn([]); $this->checker = new DependencyChecker($this->listMock, $this->loaderMock, $this->packageInfoFactoryMock); $actual = $this->checker->checkDependenciesWhenEnableModules(['B', 'D'], ['C']); $expected = [ diff --git a/lib/internal/Magento/Framework/Module/Test/Unit/PackageInfoTest.php b/lib/internal/Magento/Framework/Module/Test/Unit/PackageInfoTest.php index 8a2512c485f..4328b62c0c6 100644 --- a/lib/internal/Magento/Framework/Module/Test/Unit/PackageInfoTest.php +++ b/lib/internal/Magento/Framework/Module/Test/Unit/PackageInfoTest.php @@ -57,6 +57,11 @@ class PackageInfoTest extends \PHPUnit_Framework_TestCase $this->assertEquals('C', $this->packageInfo->getModuleName('c')); $this->assertEquals('D', $this->packageInfo->getModuleName('d')); $this->assertEquals('E', $this->packageInfo->getModuleName('e')); + $this->assertEquals( + 'Magento_TestModuleName', + $this->packageInfo->getModuleName('magento/module-test-module-name') + ); + $this->assertArrayHasKey('Magento_TestModuleName', $this->packageInfo->getNonExistingDependencies()); } public function testGetPackageName() -- GitLab