Skip to content

Commit

Permalink
dasd
Browse files Browse the repository at this point in the history
  • Loading branch information
Hlavtox committed Feb 5, 2024
1 parent 3112fa3 commit d21218f
Show file tree
Hide file tree
Showing 2 changed files with 107 additions and 103 deletions.
102 changes: 51 additions & 51 deletions src/Util/VersionUtils.php
Expand Up @@ -6,64 +6,64 @@

use App\Model\PrestaShop;

class VersionUtils {
class VersionUtils
{
/**
* Returns highest available stable version from a list of Prestashop versions.
* Ignores beta and release candidates.
*
* @param PrestaShop[] $list
*
* @return PrestaShop|null
*/
public function getHighestStableVersionFromList(array $list = []): ?Prestashop
{
if (empty($list)) {
return null;
}

/**
* Returns highest available stable version from a list of Prestashop versions.
* Ignores beta and release candidates.
*
* @param PrestaShop[] $list
*
* @return PrestaShop|null
*/
public function getHighestStableVersionFromList(array $list = []) : ?Prestashop
{
if (empty($list)) {
return null;
}
// Get highest version available
$highestVersion = null;
foreach ($list as $version) {
if (($highestVersion === null || version_compare($version->getVersion(), $highestVersion->getVersion(), '>')) &&
$version->isStable()) {
$highestVersion = $version;
}
}

// Get highest version available
$highestVersion = null;
foreach ($list as $version) {
if (($highestVersion === null || version_compare($version->getVersion(), $highestVersion->getVersion(), '>')) &&
$version->isStable()) {
$highestVersion = $version;
}
return $highestVersion;
}

return $highestVersion;
}

/**
* Returns highest available stable version of a previous major from a list of Prestashop versions.
* Ignores beta and release candidates.
*
* @param PrestaShop[] $list
*
* @return PrestaShop|null
*/
public function getHighestStablePreviousVersionFromList(array $list = []) : ?Prestashop
{
if (empty($list)) {
return null;
}
/**
* Returns highest available stable version of a previous major from a list of Prestashop versions.
* Ignores beta and release candidates.
*
* @param PrestaShop[] $list
*
* @return PrestaShop|null
*/
public function getHighestStablePreviousVersionFromList(array $list = []): ?Prestashop
{
if (empty($list)) {
return null;
}

$highestVersion = $this->getHighestStableVersionFromList($list);
$highestVersion = $this->getHighestStableVersionFromList($list);

if (empty($highestVersion)) {
return null;
}
if (empty($highestVersion)) {
return null;
}

$possiblePreviousMajor = $highestVersion->getMajorVersionNumber() - 1;
$highestPreviousVersion = null;
foreach ($list as $version) {
if (($highestPreviousVersion === null || version_compare($version->getVersion(), $highestPreviousVersion->getVersion(), '>')) &&
$version->getMajorVersionNumber() == $possiblePreviousMajor &&
$version->isStable()) {
$highestPreviousVersion = $version;
$possiblePreviousMajor = $highestVersion->getMajorVersionNumber() - 1;
$highestPreviousVersion = null;
foreach ($list as $version) {
if (($highestPreviousVersion === null || version_compare($version->getVersion(), $highestPreviousVersion->getVersion(), '>')) &&
$version->getMajorVersionNumber() == $possiblePreviousMajor &&
$version->isStable()) {
$highestPreviousVersion = $version;
}
}
}

return $highestPreviousVersion;
}
return $highestPreviousVersion;
}
}
108 changes: 56 additions & 52 deletions tests/Util/VersionUtilsTest.php
Expand Up @@ -10,59 +10,63 @@

class VersionUtilsTest extends AbstractMockedGithubClientTestCase
{
public function testGetHighestStableVersionFromList() {
$this->assertEquals(
new PrestaShop('9.0.3'),
(new VersionUtils())->getHighestStableVersionFromList([
new Prestashop('8.1.4'),
new Prestashop('8.1.3'),
new Prestashop('9.0.0'),
new Prestashop('9.0.3'),
new Prestashop('9.0.3'),
new Prestashop('1.7.8.10'),
]));
$this->assertEquals(
new PrestaShop('8.1.4'),
(new VersionUtils())->getHighestStableVersionFromList([
new Prestashop('8.1.4'),
new Prestashop('8.1.3'),
new Prestashop('9.0.0-beta'),
new Prestashop('1.7.8.10'),
]));
}
public function testGetHighestStableVersionFromList()
{
$this->assertEquals(
new PrestaShop('9.0.3'),
(new VersionUtils())->getHighestStableVersionFromList([
new Prestashop('8.1.4'),
new Prestashop('8.1.3'),
new Prestashop('9.0.0'),
new Prestashop('9.0.3'),
new Prestashop('9.0.3'),
new Prestashop('1.7.8.10'),
]));
$this->assertEquals(
new PrestaShop('8.1.4'),
(new VersionUtils())->getHighestStableVersionFromList([
new Prestashop('8.1.4'),
new Prestashop('8.1.3'),
new Prestashop('9.0.0-beta'),
new Prestashop('1.7.8.10'),
]));
}

public function testGetHighestStableVersionFromListWithEmptyList() {
$this->assertEquals(
null,
(new VersionUtils())->getHighestStableVersionFromList([
]));
}
public function testGetHighestStableVersionFromListWithEmptyList()
{
$this->assertEquals(
null,
(new VersionUtils())->getHighestStableVersionFromList([
]));
}

public function testGetHighestStablePreviousVersionFromList() {
$this->assertEquals(
new PrestaShop('8.1.4'),
(new VersionUtils())->getHighestStablePreviousVersionFromList([
new Prestashop('8.1.4'),
new Prestashop('8.1.3'),
new Prestashop('9.0.0'),
new Prestashop('9.0.3'),
new Prestashop('9.0.3'),
new Prestashop('1.7.8.10'),
]));
$this->assertEquals(
new PrestaShop('1.7.8.10'),
(new VersionUtils())->getHighestStablePreviousVersionFromList([
new Prestashop('8.1.4'),
new Prestashop('8.1.3'),
new Prestashop('9.0.0-beta'),
new Prestashop('1.7.8.10'),
]));
}
public function testGetHighestStablePreviousVersionFromList()
{
$this->assertEquals(
new PrestaShop('8.1.4'),
(new VersionUtils())->getHighestStablePreviousVersionFromList([
new Prestashop('8.1.4'),
new Prestashop('8.1.3'),
new Prestashop('9.0.0'),
new Prestashop('9.0.3'),
new Prestashop('9.0.3'),
new Prestashop('1.7.8.10'),
]));
$this->assertEquals(
new PrestaShop('1.7.8.10'),
(new VersionUtils())->getHighestStablePreviousVersionFromList([
new Prestashop('8.1.4'),
new Prestashop('8.1.3'),
new Prestashop('9.0.0-beta'),
new Prestashop('1.7.8.10'),
]));
}

public function testGetHighestStablePreviousVersionFromListWithEmptyList() {
$this->assertEquals(
null,
(new VersionUtils())->getHighestStablePreviousVersionFromList([
]));
}
public function testGetHighestStablePreviousVersionFromListWithEmptyList()
{
$this->assertEquals(
null,
(new VersionUtils())->getHighestStablePreviousVersionFromList([
]));
}
}

0 comments on commit d21218f

Please sign in to comment.