public function getMissingVersions($currentVersion, $requiredVersion) { $currentVersion = trim($currentVersion); $missingVersions = array(); if (empty($currentVersion)) { if (!empty($requiredVersion)) { $missingVersions[] = (string) $requiredVersion; } return $missingVersions; } $requiredVersion = $this->makeVersionBackwardsCompatibleIfNoComparisonDefined($requiredVersion); $version = new VersionParser(); $constraintsExisting = $version->parseConstraints($currentVersion); $requiredVersions = explode(',', (string) $requiredVersion); foreach ($requiredVersions as $required) { $required = trim($required); if (empty($required)) { continue; } $required = $this->makeVersionBackwardsCompatibleIfNoComparisonDefined($required); $constraintRequired = $version->parseConstraints($required); if (!$constraintRequired->matches($constraintsExisting)) { $missingVersions[] = $required; } } return $missingVersions; }
private function assertMissingVersion($currentVersion, $requiredVersion, $expectedMissing) { $missing = $this->dependency->getMissingVersions($currentVersion, $requiredVersion); $this->assertEquals($expectedMissing, $missing); }