2 namespace TYPO3\CMS\Extensionmanager\Tests\Unit\Service;
29 $managementMock = $this->getAccessibleMock(
30 \TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService::class,
31 array(
'downloadDependencies',
'uninstallDependenciesToBeUpdated',
'setInExtensionRepository',
'downloadMainExtension',
'isAutomaticInstallationEnabled')
33 $managementMock->expects($this->any())->method(
'downloadMainExtension')->will($this->returnValue(array()));
34 $managementMock->expects($this->any())->method(
'isAutomaticInstallationEnabled')->will($this->returnValue(array(
false)));
35 $extensionModelMock = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Domain\Model\Extension::class);
36 $extensionModelMock->_set(
'extensionKey',
'foobar');
37 $extensionModelMock->_set(
'version',
'1.0.0');
38 $dependencyUtilityMock = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Utility\DependencyUtility::class, array(
'checkDependencies'));
39 $dependencyUtilityMock->expects($this->atLeastOnce())->method(
'checkDependencies');
40 $managementMock->_set(
'dependencyUtility', $dependencyUtilityMock);
41 $downloadQueueMock = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue::class, array(
'getExtensionQueue',
'addExtensionToInstallQueue'));
42 $downloadQueueMock->expects($this->atLeastOnce())->method(
'getExtensionQueue')->will($this->returnValue(array(
44 'foo' => $extensionModelMock
47 $managementMock->_set(
'downloadQueue', $downloadQueueMock);
48 $managementMock->expects($this->once())->method(
'downloadDependencies')->with(array(
'foo' => $extensionModelMock))->will($this->returnValue(array()));
49 $managementMock->_call(
'installExtension', $extensionModelMock);
58 $managementMock = $this->getAccessibleMock(
59 \TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService::class,
60 array(
'downloadDependencies',
'uninstallDependenciesToBeUpdated',
'setInExtensionRepository',
'downloadMainExtension',
'isAutomaticInstallationEnabled')
62 $managementMock->expects($this->any())->method(
'downloadMainExtension')->will($this->returnValue(array()));
63 $managementMock->expects($this->any())->method(
'isAutomaticInstallationEnabled')->will($this->returnValue(
true));
64 $extensionModelMock = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Domain\Model\Extension::class);
65 $extensionModelMock->_set(
'extensionKey',
'foobar');
66 $extensionModelMock->_set(
'version',
'1.0.0');
67 $dependencyUtilityMock = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Utility\DependencyUtility::class, array(
'checkDependencies'));
68 $dependencyUtilityMock->expects($this->atLeastOnce())->method(
'checkDependencies');
69 $managementMock->_set(
'dependencyUtility', $dependencyUtilityMock);
70 $downloadQueueMock = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue::class, array(
'getExtensionQueue',
'addExtensionToInstallQueue'));
71 $downloadQueueMock->expects($this->atLeastOnce())->method(
'getExtensionQueue')->will($this->returnValue(array(
73 'foo' => $extensionModelMock
76 $managementMock->_set(
'downloadQueue', $downloadQueueMock);
77 $managementMock->expects($this->once())->method(
'downloadDependencies')->with(array(
'foo' => $extensionModelMock))->will($this->returnValue(array()));
78 $managementMock->expects($this->once())->method(
'uninstallDependenciesToBeUpdated')->with(array(
'foo' => $extensionModelMock))->will($this->returnValue(array()));
79 $managementMock->_call(
'installExtension', $extensionModelMock);
88 $managementMock = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService::class, array(
92 $extensionModelMock = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Domain\Model\Extension::class, array(
'getExtensionKey'));
93 $extensionModelMock->_set(
'extensionKey',
'foobar');
94 $extensionModelMock->_set(
'version',
'1.0.0');
96 $dependencyUtilityMock = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Utility\DependencyUtility::class);
97 $dependencyUtilityMock->expects($this->atLeastOnce())->method(
'checkDependencies');
98 $installUtilityMock = $this->getMock(\TYPO3\CMS\Extensionmanager\Utility\InstallUtility::class);
99 $installUtilityMock->expects($this->any())->method(
'enrichExtensionWithDetails')->will($this->returnValue(array()));
100 $extensionModelUtilityMock = $this->getMock(\TYPO3\CMS\Extensionmanager\Utility\ExtensionModelUtility::class);
101 $extensionModelUtilityMock->expects($this->any())->method(
'mapExtensionArrayToModel')->will($this->returnValue($extensionModelMock));
102 $managementMock->_set(
'dependencyUtility', $dependencyUtilityMock);
103 $managementMock->_set(
'installUtility', $installUtilityMock);
104 $managementMock->_set(
'extensionModelUtility', $extensionModelUtilityMock);
106 $downloadQueue = array(
109 $downloadQueueMock = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue::class, array(
'removeExtensionFromQueue',
'addExtensionToInstallQueue'));
110 $downloadUtilityMock = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Utility\DownloadUtility::class, array(
'download'));
111 $downloadUtilityMock->expects($this->once())->method(
'download')->with($extensionModelMock);
112 $managementMock->_set(
'downloadUtility', $downloadUtilityMock);
113 $managementMock->_set(
'downloadQueue', $downloadQueueMock);
114 $managementMock->_call(
'downloadDependencies', $downloadQueue);
121 public function downloadDependenciesCallsRemoveExtensionFromQueue()
123 $managementMock = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService::class, array(
128 $extensionModelMock = $this->getMock(\TYPO3\CMS\Extensionmanager\Domain\Model\Extension::class, array(
'getExtensionKey'));
129 $extensionModelMock->setExtensionKey(
'foobar');
130 $extensionModelMock->setVersion(
'1.0.0');
131 $downloadQueue = array(
135 $dependencyUtilityMock = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Utility\DependencyUtility::class);
136 $dependencyUtilityMock->expects($this->atLeastOnce())->method(
'checkDependencies');
137 $installUtilityMock = $this->getMock(\TYPO3\CMS\Extensionmanager\Utility\InstallUtility::class);
138 $installUtilityMock->expects($this->any())->method(
'enrichExtensionWithDetails')->will($this->returnValue(array()));
139 $extensionModelUtilityMock = $this->getMock(\TYPO3\CMS\Extensionmanager\Utility\ExtensionModelUtility::class);
140 $extensionModelUtilityMock->expects($this->any())->method(
'mapExtensionArrayToModel')->will($this->returnValue($extensionModelMock));
141 $managementMock->_set(
'dependencyUtility', $dependencyUtilityMock);
142 $managementMock->_set(
'installUtility', $installUtilityMock);
143 $managementMock->_set(
'extensionModelUtility', $extensionModelUtilityMock);
145 $downloadQueueMock = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue::class, array(
'removeExtensionFromQueue',
'addExtensionToInstallQueue'));
146 $downloadUtilityMock = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Utility\DownloadUtility::class, array(
'download'));
147 $downloadQueueMock->expects($this->once())->method(
'removeExtensionFromQueue')->with($extensionModelMock);
148 $managementMock->_set(
'downloadUtility', $downloadUtilityMock);
149 $managementMock->_set(
'downloadQueue', $downloadQueueMock);
150 $managementMock->_call(
'downloadDependencies', $downloadQueue);
159 $managementMock = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService::class, array(
163 $extensionModelMock = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Domain\Model\Extension::class, array(
'getExtensionKey'));
164 $extensionModelMock->_set(
'extensionKey',
'foobar');
165 $extensionModelMock->_set(
'version',
'1.0.0');
166 $downloadQueue = array(
170 $dependencyUtilityMock = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Utility\DependencyUtility::class);
171 $dependencyUtilityMock->expects($this->atLeastOnce())->method(
'checkDependencies');
172 $installUtilityMock = $this->getMock(\TYPO3\CMS\Extensionmanager\Utility\InstallUtility::class);
173 $installUtilityMock->expects($this->any())->method(
'enrichExtensionWithDetails')->will($this->returnValue(array()));
174 $extensionModelUtilityMock = $this->getMock(\TYPO3\CMS\Extensionmanager\Utility\ExtensionModelUtility::class);
175 $extensionModelUtilityMock->expects($this->any())->method(
'mapExtensionArrayToModel')->will($this->returnValue($extensionModelMock));
176 $managementMock->_set(
'dependencyUtility', $dependencyUtilityMock);
177 $managementMock->_set(
'installUtility', $installUtilityMock);
178 $managementMock->_set(
'extensionModelUtility', $extensionModelUtilityMock);
180 $downloadQueueMock = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Domain\Model\DownloadQueue::class, array(
'removeExtensionFromQueue',
'addExtensionToInstallQueue'));
181 $downloadUtilityMock = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Utility\DownloadUtility::class, array(
'download'));
182 $extensionModelMock->expects($this->atLeastOnce())->method(
'getExtensionKey')->will($this->returnValue(
'foobar'));
183 $managementMock->_set(
'downloadUtility', $downloadUtilityMock);
184 $managementMock->_set(
'downloadQueue', $downloadQueueMock);
185 $resolvedDependencies = $managementMock->_call(
'downloadDependencies', $downloadQueue);
186 $this->assertEquals(array(
'downloaded' => array(
'foobar' => $extensionModelMock)), $resolvedDependencies);
195 $managementMock = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService::class, array(
198 $extensionModelMock = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Domain\Model\Extension::class, array(
'getExtensionKey'));
199 $extensionModelMock->_set(
'extensionKey',
'foobar');
200 $extensionModelMock->_set(
'version',
'1.0.0');
201 $extensionModelMock->expects($this->atLeastOnce())->method(
'getExtensionKey')->will($this->returnValue(
'foobar'));
202 $downloadQueue = array(
205 $installUtility = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Utility\InstallUtility::class, array(
'uninstall'), array(),
'',
false);
206 $installUtility->expects($this->once())->method(
'uninstall')->with(
'foobar');
207 $managementMock->_set(
'installUtility', $installUtility);
208 $managementMock->_call(
'uninstallDependenciesToBeUpdated', $downloadQueue);
217 $managementMock = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService::class, array(
220 $extensionModelMock = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Domain\Model\Extension::class, array(
'getExtensionKey'));
221 $extensionModelMock->_set(
'extensionKey',
'foobar');
222 $extensionModelMock->_set(
'version',
'1.0.0');
223 $extensionModelMock->expects($this->atLeastOnce())->method(
'getExtensionKey')->will($this->returnValue(
'foobar'));
224 $downloadQueue = array(
227 $installUtility = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Utility\InstallUtility::class, array(
'uninstall'), array(),
'',
false);
228 $managementMock->_set(
'installUtility', $installUtility);
229 $resolvedDependencies = $managementMock->_call(
'uninstallDependenciesToBeUpdated', $downloadQueue);
230 $this->assertEquals(array(
'updated' => array(
'foobar' => $extensionModelMock)), $resolvedDependencies);
237 public function installDependenciesCallsInstall()
239 $managementMock = $this->getAccessibleMock(
240 \TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService::class,
241 array(
'emitWillInstallExtensionsSignal',
'emitHasInstalledExtensionSignal')
244 $extensionMock = $this->getMock(\TYPO3\CMS\Extensionmanager\Domain\Model\Extension::class, array(
'dummy'));
245 $extensionMock->setExtensionKey(
'foobar');
246 $installQueue = array(
247 'foobar' => $extensionMock,
249 $installUtility = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Utility\InstallUtility::class, array(
'install',
'emitWillInstallExtensionsSignal'), array(),
'',
false);
250 $installUtility->expects($this->once())->method(
'install')->with(
'foobar');
251 $managementMock->_set(
'installUtility', $installUtility);
252 $managementMock->_call(
'installDependencies', $installQueue);
259 public function installDependenciesReturnsResolvedDependencies()
261 $managementMock = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService::class, array(
262 'emitWillInstallExtensionsSignal',
263 'emitHasInstalledExtensionSignal'
266 $extensionMock = $this->getMock(\TYPO3\CMS\Extensionmanager\Domain\Model\Extension::class, array(
'dummy'));
267 $extensionMock->setExtensionKey(
'foobar');
268 $installQueue = array(
269 'foobar' => $extensionMock,
271 $installUtility = $this->getAccessibleMock(\TYPO3\CMS\Extensionmanager\Utility\InstallUtility::class, array(
'install',
'emitWillInstallExtensionsSignal'), array(),
'',
false);
272 $installUtility->expects($this->once())->method(
'install')->with(
'foobar');
273 $managementMock->_set(
'installUtility', $installUtility);
274 $resolvedDependencies = $managementMock->_call(
'installDependencies', $installQueue);
275 $this->assertEquals(array(
276 'installed' => array(
279 ), $resolvedDependencies);