Skip to content

Commit 553f37e

Browse files
committed
Merge branch 'feature/bump-nikolaposa-version'
Close Roave#61
2 parents 58d3a9b + 36ea4a9 commit 553f37e

7 files changed

+35
-34
lines changed

composer.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
"php": "^7.2",
66
"beberlei/assert": "^2.9",
77
"composer/composer": "^1.6",
8-
"nikolaposa/version": "^2.2",
9-
"roave/better-reflection": "^3.0",
8+
"nikolaposa/version": "^3.0",
9+
"roave/better-reflection": "^3.0",
1010
"symfony/console": "^4.0",
1111
"symfony/process": "^4.0"
1212
},

composer.lock

+12-15
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Git/GetVersionCollectionFromGitRepository.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public function fromRepository(CheckedOutRepository $checkedOutRepository) : Ver
3030
->mustRun()
3131
->getOutput();
3232

33-
return VersionsCollection::fromArray(array_filter(
33+
return new VersionsCollection(...array_filter(
3434
array_map(function (string $maybeVersion) : ?Version {
3535
try {
3636
return Version::fromString($maybeVersion);

src/Git/PickLastMinorVersionFromCollection.php

+7-4
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@
44

55
namespace Roave\BackwardCompatibility\Git;
66

7-
use Assert\Assert;
87
use Symfony\Component\Process\Exception\LogicException;
98
use Symfony\Component\Process\Exception\RuntimeException;
109
use Version\Version;
1110
use Version\VersionsCollection;
11+
use function iterator_to_array;
12+
use function reset;
1213

1314
final class PickLastMinorVersionFromCollection implements PickVersionFromVersionCollection
1415
{
@@ -19,18 +20,20 @@ final class PickLastMinorVersionFromCollection implements PickVersionFromVersion
1920
*/
2021
public function forVersions(VersionsCollection $versions) : Version
2122
{
22-
Assert::that($versions->count())->greaterOrEqualThan(1);
23-
2423
$versions->sort(VersionsCollection::SORT_DESC);
2524

25+
/** @var Version[] $versionsAsArray */
26+
$versionsAsArray = iterator_to_array($versions->getIterator());
2627
/** @var Version $lastVersion */
27-
$lastVersion = $versions->getIterator()->current();
28+
$lastVersion = reset($versionsAsArray);
2829
$previousVersionInIteration = $lastVersion;
30+
2931
/** @var Version $version */
3032
foreach ($versions as $version) {
3133
if ($lastVersion->getMinor() !== $version->getMinor()) {
3234
return $previousVersionInIteration;
3335
}
36+
3437
$previousVersionInIteration = $version;
3538
}
3639

test/unit/Command/AssertBackwardsCompatibleTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ public function testExecuteWithDefaultRevisionsNotProvided() : void
280280
{
281281
$fromSha = sha1('fromRevision', false);
282282
$toSha = sha1('toRevision', false);
283-
$versions = VersionsCollection::fromArray(['1.0.0', '1.0.1']);
283+
$versions = new VersionsCollection(Version::fromString('1.0.0'), Version::fromString('1.0.1'));
284284
$pickedVersion = Version::fromString('1.0.0');
285285

286286
$this->input->expects(self::any())->method('hasOption')->willReturn(false);

test/unit/Git/GetVersionCollectionFromGitRepositoryTest.php

+7
Original file line numberDiff line numberDiff line change
@@ -71,4 +71,11 @@ public function testFromRepositoryIgnoresInvalidVersions() : void
7171

7272
self::assertSame(['1.0.0', '1.1.0'], $this->getTags());
7373
}
74+
75+
public function testFromRepositoryAllowsVersionPrefix() : void
76+
{
77+
$this->makeTag('v1.0.0');
78+
79+
self::assertSame(['1.0.0'], $this->getTags());
80+
}
7481
}

test/unit/Git/PickLastMinorVersionFromCollectionTest.php

+5-11
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44

55
namespace RoaveTest\BackwardCompatibility\Git;
66

7-
use InvalidArgumentException;
87
use PHPUnit\Framework\TestCase;
98
use Roave\BackwardCompatibility\Git\PickLastMinorVersionFromCollection;
9+
use Version\Version;
1010
use Version\VersionsCollection;
11+
use function array_map;
1112

1213
/**
1314
* @covers \Roave\BackwardCompatibility\Git\PickLastMinorVersionFromCollection
@@ -36,17 +37,10 @@ public function testForRepository(string $expectedVersion, array $collectionOfVe
3637
self::assertSame(
3738
$expectedVersion,
3839
(new PickLastMinorVersionFromCollection())->forVersions(
39-
VersionsCollection::fromArray($collectionOfVersions)
40+
new VersionsCollection(...array_map(function (string $version) : Version {
41+
return Version::fromString($version);
42+
}, $collectionOfVersions))
4043
)->getVersionString()
4144
);
4245
}
43-
44-
public function testEmptyVersionCollectionResultsInException() : void
45-
{
46-
$versions = VersionsCollection::fromArray([]);
47-
$determiner = new PickLastMinorVersionFromCollection();
48-
49-
$this->expectException(InvalidArgumentException::class);
50-
$determiner->forVersions($versions);
51-
}
5246
}

0 commit comments

Comments
 (0)