/** * Get a version lesser or equal than the milestone. * * @since 0.2.4 * * @param string $milestone A version milestone that is used to define the requirement. * * @return string Version number that meets the requirement. */ protected function getLesserEqualVersion($milestone) { if (version_compare($this->version->getVersion(), $milestone, '<=')) { return $this->version->getVersion(); } $data = array_reverse($this->releases->getAll()); foreach ($data as $version => $date) { if (version_compare($version, $milestone, '<=')) { return $version; } } throw new RuntimeException('Could not satisfy version requirements.'); }
/** * Test fetching the single components for a version. * * @dataProvider componentsDataProvider * * @since 0.1.0 * * @param string $version Version to test. * @param bool $partial Whether to accept partial versions. * @param int $major Expected major version component. * @param int $minor Expected minor version component. * @param int $patch Expected path version component. * @param string $prerelease Expected pre-release component. * @param string $build Expected build metadata component. */ public function testPartialComponents($version, $partial, $major, $minor, $patch, $prerelease, $build) { $semver = new SemanticVersion($version, $partial); $this->assertEquals($major, $semver->getMajor()); $this->assertEquals($minor, $semver->getMinor()); $this->assertEquals($patch, $semver->getPatch()); $this->assertEquals($prerelease, $semver->getPreRelease()); $this->assertEquals($build, $semver->getBuild()); }