Skip to content

Commit 06f78f8

Browse files
committed
Added support for new ~ dependency modifier.
1 parent 22bbcfb commit 06f78f8

File tree

3 files changed

+33
-13
lines changed

3 files changed

+33
-13
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"php": "^7.4 | ^8.0",
1616
"ext-json": "*",
1717
"ext-pdo": "*",
18-
"bluepsyduck/factorio-mod-portal-client": "^1.3",
18+
"bluepsyduck/factorio-mod-portal-client": "^1.4",
1919
"bluepsyduck/laminas-autowire-factory": "^1.0",
2020
"bluepsyduck/mapper-manager": "^1.2",
2121
"doctrine/orm": "^2.6",

src/Service/ValidationService.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ private function validateRelease(Release $release, array $allReleases): array
8686
$dependentRelease = $allReleases[$dependency->getMod()] ?? null;
8787
switch ($dependency->getType()) {
8888
case DependencyType::MANDATORY:
89+
case DependencyType::MANDATORY_CIRCULAR:
8990
if (
9091
$dependentRelease === null
9192
|| !$dependency->isMatchedByVersion($dependentRelease->getVersion())

test/src/Service/ValidationServiceTest.php

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -75,21 +75,36 @@ public function testValidate(): void
7575
$validatedValidMod->name = 'validMod';
7676
$validatedValidMod->version = '3.4.5';
7777

78-
$missingDependencyMod = new Mod();
79-
$missingDependencyRelease = new Release();
80-
$missingDependencyRelease->setVersion(new Version('4.5.6'));
81-
$missingDependencyRelease->getInfoJson()->setDependencies([
78+
$missingDependency1Mod = new Mod();
79+
$missingDependency1Release = new Release();
80+
$missingDependency1Release->setVersion(new Version('4.5.6'));
81+
$missingDependency1Release->getInfoJson()->setDependencies([
8282
new Dependency('notExistingMod'),
8383
new Dependency('dummyMod > 2.0'),
8484
]);
85-
$validatedMissingDependencyMod = new ValidatedMod();
86-
$validatedMissingDependencyMod->name = 'missingDependencyMod';
87-
$validatedMissingDependencyMod->version = '4.5.6';
88-
$validatedMissingDependencyMod->problems = [
85+
$validatedMissingDependency1Mod = new ValidatedMod();
86+
$validatedMissingDependency1Mod->name = 'missingDependency1Mod';
87+
$validatedMissingDependency1Mod->version = '4.5.6';
88+
$validatedMissingDependency1Mod->problems = [
8989
$createProblem(ValidationProblemType::MISSING_DEPENDENCY, 'notExistingMod'),
9090
$createProblem(ValidationProblemType::MISSING_DEPENDENCY, 'dummyMod > 2.0.0'),
9191
];
9292

93+
$missingDependency2Mod = new Mod();
94+
$missingDependency2Release = new Release();
95+
$missingDependency2Release->setVersion(new Version('4.5.6'));
96+
$missingDependency2Release->getInfoJson()->setDependencies([
97+
new Dependency('notExistingMod'),
98+
new Dependency('~ dummyMod > 2.0'),
99+
]);
100+
$validatedMissingDependency2Mod = new ValidatedMod();
101+
$validatedMissingDependency2Mod->name = 'missingDependency2Mod';
102+
$validatedMissingDependency2Mod->version = '4.5.6';
103+
$validatedMissingDependency2Mod->problems = [
104+
$createProblem(ValidationProblemType::MISSING_DEPENDENCY, 'notExistingMod'),
105+
$createProblem(ValidationProblemType::MISSING_DEPENDENCY, '~ dummyMod > 2.0.0'),
106+
];
107+
93108
$conflictedMod = new Mod();
94109
$conflictedRelease = new Release();
95110
$conflictedRelease->setVersion(new Version('5.6.7'));
@@ -113,7 +128,8 @@ public function testValidate(): void
113128
'missingMod',
114129
'missingReleaseMod',
115130
'validMod',
116-
'missingDependencyMod',
131+
'missingDependency1Mod',
132+
'missingDependency2Mod',
117133
'conflictedMod',
118134
];
119135
$mods = [
@@ -122,14 +138,16 @@ public function testValidate(): void
122138
'dummyMod2' => $dummyMod2,
123139
'missingReleaseMod' => $missingReleaseMod,
124140
'validMod' => $validMod,
125-
'missingDependencyMod' => $missingDependencyMod,
141+
'missingDependency1Mod' => $missingDependency1Mod,
142+
'missingDependency2Mod' => $missingDependency2Mod,
126143
'conflictedMod' => $conflictedMod,
127144
];
128145
$releases = [
129146
'dummyMod1' => $dummyRelease1,
130147
'dummyMod2' => $dummyRelease2,
131148
'validMod' => $validRelease,
132-
'missingDependencyMod' => $missingDependencyRelease,
149+
'missingDependency1Mod' => $missingDependency1Release,
150+
'missingDependency2Mod' => $missingDependency2Release,
133151
'conflictedMod' => $conflictedRelease,
134152
];
135153
$expectedResult = [
@@ -139,7 +157,8 @@ public function testValidate(): void
139157
'missingMod' => $validatedMissingMod,
140158
'missingReleaseMod' => $validatedMissingReleaseMod,
141159
'validMod' => $validatedValidMod,
142-
'missingDependencyMod' => $validatedMissingDependencyMod,
160+
'missingDependency1Mod' => $validatedMissingDependency1Mod,
161+
'missingDependency2Mod' => $validatedMissingDependency2Mod,
143162
'conflictedMod' => $validatedConflictedMod,
144163
];
145164

0 commit comments

Comments
 (0)