Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
UninstallDependencyCheckTest.php
Go to the documentation of this file.
1 <?php
8 
10 
11 class UninstallDependencyCheckTest extends \PHPUnit\Framework\TestCase
12 {
16  private $uninstallDependencyCheck;
17 
21  private $composerInfo;
22 
26  private $packageDependencyChecker;
27 
31  private $themeDependencyChecker;
32 
36  private $themeDependencyCheckerFactory;
37 
38  public function setup()
39  {
40  $this->composerInfo = $this->createMock(\Magento\Framework\Composer\ComposerInformation::class);
41  $this->packageDependencyChecker = $this->createMock(\Magento\Framework\Composer\DependencyChecker::class);
42  $this->themeDependencyChecker = $this->createMock(\Magento\Theme\Model\Theme\ThemeDependencyChecker::class);
43  $this->themeDependencyCheckerFactory =
44  $this->createMock(\Magento\Setup\Model\ThemeDependencyCheckerFactory::class);
45  $this->themeDependencyCheckerFactory->expects($this->any())->method('create')
46  ->willReturn($this->themeDependencyChecker);
47  $this->uninstallDependencyCheck = new UninstallDependencyCheck(
48  $this->composerInfo,
49  $this->packageDependencyChecker,
50  $this->themeDependencyCheckerFactory
51  );
52  }
53 
55  {
56  $packages = [
57  'verndor/module' => 'magento2-module',
58  'verndor/theme' => 'magento2-theme',
59  'verndor/metapackage' => 'metapackage',
60  'verndor/language' => 'magento2-language',
61  ];
62 
63  $this->composerInfo->expects($this->once())->method('getRootRequiredPackageTypesByName')->willReturn($packages);
64  $this->packageDependencyChecker->expects($this->once())
65  ->method('checkDependencies')
66  ->with(array_keys($packages))
67  ->willReturn([]);
68 
69  $this->themeDependencyChecker->expects($this->once())
70  ->method('checkChildThemeByPackagesName')
71  ->with(['verndor/theme'])
72  ->willReturn([]);
73 
74  $result = $this->uninstallDependencyCheck->runUninstallReadinessCheck(array_keys($packages));
75  $this->assertEquals(['success' => true], $result);
76  }
77 
79  {
80  $packages = [
81  'verndor/module' => 'magento2-module',
82  'verndor/theme' => 'magento2-theme',
83  'verndor/metapackage' => 'metapackage',
84  'verndor/language' => 'magento2-language',
85  ];
86 
87  $this->composerInfo->expects($this->once())->method('getRootRequiredPackageTypesByName')->willReturn($packages);
88  $this->packageDependencyChecker->expects($this->once())
89  ->method('checkDependencies')
90  ->with(array_keys($packages))
91  ->willReturn([]);
92 
93  $this->themeDependencyChecker->expects($this->once())
94  ->method('checkChildThemeByPackagesName')
95  ->with(['verndor/theme'])
96  ->willReturn(['Error message']);
97 
98  $result = $this->uninstallDependencyCheck->runUninstallReadinessCheck(array_keys($packages));
99  $this->assertEquals(['success' => false, 'error' => 'Error message'], $result);
100  }
101 }