Skip to content

Commit dcbfe8b

Browse files
committed
Test fixes + compatibility with PHP 8.2
1 parent 533a9d5 commit dcbfe8b

File tree

7 files changed

+40
-6
lines changed

7 files changed

+40
-6
lines changed

src/Magento/ComposerRootUpdatePlugin/Plugin/Commands/RequireCommerceCommand.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ class RequireCommerceCommand extends ExtendableRequireCommand
5151
*/
5252
protected $console;
5353

54+
protected $repos;
55+
5456
/**
5557
* Use the native RequireCommand config with options/doc additions for the root project composer.json update
5658
*

src/Magento/ComposerRootUpdatePlugin/Utils/PackageUtils.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ public function getEditionLabel(string $packageEdition): ?string
125125
public function findRequire(Composer $composer, string $packageMatcher)
126126
{
127127
$requires = array_values($composer->getPackage()->getRequires());
128-
if (@preg_match($packageMatcher, null) === false) {
128+
if (@preg_match($packageMatcher, '') === false) {
129129
foreach ($requires as $link) {
130130
if ($packageMatcher == $link->getTarget()) {
131131
return $link;

tests/Integration/Magento/ComposerRootUpdatePlugin/_files/expected_no_override.composer.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@
3030
"vendor1/different-conflicting2": "2.0.0",
3131
"vendor1/different-conflicting3": "3.0.0"
3232
},
33+
"config": {
34+
"allow-plugins": true
35+
},
3336
"extra": {
3437
"extra-key1": "install1",
3538
"extra-key2": "target2",

tests/Integration/Magento/ComposerRootUpdatePlugin/_files/expected_override.composer.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222
"Magento\\Sniffs\\": "dev/tests/framework/Magento/Sniffs/"
2323
}
2424
},
25+
"config": {
26+
"allow-plugins": true
27+
},
2528
"conflict": {
2629
"vendor1/conflicting1": "1.0.0",
2730
"vendor1/conflicting2": "2.1.0",

tests/Integration/Magento/ComposerRootUpdatePlugin/_files/test.composer.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,8 @@
3737
"sample-data": "Suggested Sample Data 1.0.0",
3838
"vendor/suggested": "Another Suggested Package"
3939
},
40+
"config": {
41+
"allow-plugins": true
42+
},
4043
"minimum-stability": "dev"
4144
}

tests/Unit/Magento/ComposerRootUpdatePlugin/Updater/RootPackageRetrieverTest.php

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
use Composer\Package\RootPackageInterface;
1616
use Composer\Plugin\PluginInterface;
1717
use Composer\Repository\ComposerRepository;
18-
use Composer\Repository\RepositoryInterface;
18+
use Composer\Repository\LockArrayRepository;
1919
use Composer\Repository\RepositoryManager;
2020
use Composer\Util\RemoteFilesystem;
2121
use Magento\ComposerRootUpdatePlugin\Utils\Console;
@@ -153,7 +153,7 @@ public function testGetOriginalRootNotOnRepo_NoConfirm()
153153

154154
public function testGetTargetRootFromRepo()
155155
{
156-
$this->repo->expects($this->any())->method('loadPackages')->willReturn(
156+
$this->repo->expects($this->atLeast(1))->method('loadPackages')->willReturn(
157157
[
158158
'namesFound' => [$this->originalRoot->getName()],
159159
'packages' => [
@@ -210,7 +210,16 @@ protected function setUp(): void
210210
'isLocked',
211211
'getLockedRepository'
212212
]);
213-
$lockedRepo = $this->getMockForAbstractClass(RepositoryInterface::class);
213+
$lockedRepo = $this->getMockForAbstractClass(
214+
LockArrayRepository::class,
215+
[],
216+
'',
217+
true,
218+
true,
219+
true,
220+
['getPackages'],
221+
false
222+
);
214223
$originalProduct = $this->getMockForAbstractClass(PackageInterface::class);
215224
$originalProduct->method('getName')->willReturn('magento/product-enterprise-edition');
216225
$originalProduct->method('getVersion')->willReturn('1.1.0.0');
@@ -232,11 +241,15 @@ protected function setUp(): void
232241
$this->originalRoot->method('getVersion')->willReturn('1.1.0.0');
233242
$this->originalRoot->method('getStabilityPriority')->willReturn(0);
234243

235-
$this->targetRoot = $this->createPartialMock(Package::class, ['getName', 'getVersion', 'getStabilityPriority']);
244+
$this->targetRoot = $this->createPartialMock(
245+
Package::class,
246+
['getName', 'getVersion', 'getStabilityPriority', 'getPrettyVersion']
247+
);
236248
$this->targetRoot->id = 2;
237249
$this->targetRoot->method('getName')->willReturn('magento/project-enterprise-edition');
238250
$this->targetRoot->method('getVersion')->willReturn('2.0.0.0');
239251
$this->targetRoot->method('getStabilityPriority')->willReturn(0);
252+
$this->targetRoot->method('getPrettyVersion')->willReturn('');
240253

241254
$repoManager = $this->createPartialMock(RepositoryManager::class, ['getRepositories']);
242255
if ($apiMajorVersion == '1') {

tests/Unit/Magento/ComposerRootUpdatePlugin/Updater/RootProjectUpdaterTest.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
use Composer\Package\Package;
1717
use Composer\Package\RootPackage;
1818
use Composer\Repository\ComposerRepository;
19+
use Composer\Repository\LockArrayRepository;
1920
use Composer\Repository\RepositoryInterface;
2021
use Composer\Repository\RepositoryManager;
2122
use Composer\Semver\Constraint\Constraint;
@@ -273,7 +274,16 @@ public function setUp(): void
273274
$repo = $this->createPartialMock(ComposerRepository::class, []);
274275
$repoManager = $this->createPartialMock(RepositoryManager::class, ['getRepositories']);
275276
$repoManager->method('getRepositories')->willReturn([$repo]);
276-
$lockedRepo = $this->getMockForAbstractClass(RepositoryInterface::class);
277+
$lockedRepo = $this->getMockForAbstractClass(
278+
LockArrayRepository::class,
279+
[],
280+
'',
281+
true,
282+
true,
283+
true,
284+
['getPackages'],
285+
false
286+
);
277287
$lockedRepo->method('getPackages')->willReturn([
278288
new Package('magento/product-community-edition', '1.0.0.0', '1.0.0')
279289
]);

0 commit comments

Comments
 (0)